如何将列别名设置为 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

第一个解决方案:

  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'