如何将列别名设置为 SQL 查询的结果?
How to set a column alias as the result of a SQL query?
我需要使用 SQL 查询的结果来设置列别名。请查看下面的脚本以及我需要将其用作列别名的脚本结果。
select
convert(varchar,DATEADD(month, -12, dateadd(d,-day(convert(date,dateadd(d,-(day(getdate())),getdate()))),convert(date,dateadd(d,+1-(day(getdate())),getdate())))),107),
convert(varchar,convert(date,dateadd(d,-day(convert(date,dateadd(d,-(day(getdate())),getdate()))),convert(date,dateadd(d,+1-(day(getdate())),getdate())))),107)
我需要尽快回答我的问题。
以下link描述了两种解决方案:Column alias based on variable
第一个解决方案:
- 在变量中设置别名
- 将查询定义为包含对变量的引用的 nvarchar。
使用sp_executesql
执行查询
SET @column_alias = 'new_title'
SET @sql = 'SELECT keycol, datacol AS ' + @column_alias + ' FROM Foo'
EXEC sp_executesql @sql
第二种解决方案:在执行查询后重命名列
INSERT INTO Results
SELECT keycol, datacol
FROM Foo
EXEC sp_rename 'Results.datacol', @column_alias, 'COLUMN'
我需要使用 SQL 查询的结果来设置列别名。请查看下面的脚本以及我需要将其用作列别名的脚本结果。
select
convert(varchar,DATEADD(month, -12, dateadd(d,-day(convert(date,dateadd(d,-(day(getdate())),getdate()))),convert(date,dateadd(d,+1-(day(getdate())),getdate())))),107),
convert(varchar,convert(date,dateadd(d,-day(convert(date,dateadd(d,-(day(getdate())),getdate()))),convert(date,dateadd(d,+1-(day(getdate())),getdate())))),107)
我需要尽快回答我的问题。
以下link描述了两种解决方案:Column alias based on variable
第一个解决方案:
- 在变量中设置别名
- 将查询定义为包含对变量的引用的 nvarchar。
使用sp_executesql
执行查询SET @column_alias = 'new_title' SET @sql = 'SELECT keycol, datacol AS ' + @column_alias + ' FROM Foo' EXEC sp_executesql @sql
第二种解决方案:在执行查询后重命名列
INSERT INTO Results
SELECT keycol, datacol
FROM Foo
EXEC sp_rename 'Results.datacol', @column_alias, 'COLUMN'