gpt4 book ai didi

sql - 使用动态 SQL 通过向简单的 sql 查询添加变量来指定列名

转载 作者:行者123 更新时间:2023-12-04 23:43:07 25 4
gpt4 key购买 nike

SQL 2005/SQL 2008

Declare @temp nvarchar(1000)

set @temp = 'ABC'


select col1,col2 from tableA

与选择查询一起,如何向选择查询添加变量?

expected output :-

select col1,col2,@temp as [col3] from tableA

@temp 指定表 A 中列的名称。

最佳答案

如果您尝试动态指定列名,您可以查看执行动态 sql。但是,您应该确保首先阅读此方法的危险:

http://www.sommarskog.se/dynamic_sql.html

在该页面中,有一个示例显示动态指定表名——您可以更改它以动态指定列名:

CREATE PROCEDURE general_select @tblname nvarchar(128),
@key varchar(10),
@debug bit = 0 AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT col1, col2, col3
FROM dbo.' + quotename(@tblname) + '
WHERE keycol = @key'
IF @debug = 1 PRINT @sql
EXEC sp_executesql @sql, N'@key varchar(10)', @key = @key

例如,如果您有一个表“MyTable”,其中列名为“x”、“y”和“z”,它可能看起来像:

DECLARE @columnName nvarchar(128)
DECLARE @sql nvarchar(4000)
set @columnName = 'z'

SET @sql = 'SELECT x, y, ' + @columnName + ' from MyTable'
EXEC sp_executesql @sql, N'@columnName varchar(128)', @columnName = @columnName

关于sql - 使用动态 SQL 通过向简单的 sql 查询添加变量来指定列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7123659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com