一尘不染

如何设置列别名作为SQL查询的结果?

sql

我需要使用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)

我需要尽快回答我的问题。


阅读 157

收藏
2021-05-16

共1个答案

一尘不染

以下链接描述了两种解决方案:基于变量的列别名

第一个解决方案:

  1. 在变量中设置别名
  2. 将查询定义为包含对该变量的引用的nvarchar。
  3. 使用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'
2021-05-16