从属性中提供列别名

时间:2014-07-17 04:06:51

标签: sql-server

我希望查询从属性中提供列别名,我试过这个但是没有用

$
  declare @e varchar
    set @e = 'try'

    SELECT     dbo.Mn.id, dbo.Mn.name,DCF.asd as @e
    FROM         dbo.DCF INNER JOIN
                  dbo.Mn ON dbo.DCF.id = dbo.Mn.id   

$

1 个答案:

答案 0 :(得分:0)

如果要将变量的值用作别名,则可以使用动态SQL实现该目的:

declare @e nvarchar(10)
set @e = N'try'

declare @sql nvarchar(max) = 
    'SELECT     dbo.Mn.id, dbo.Mn.name,DCF.asd as ' + @e +
    ' FROM         dbo.DCF INNER JOIN
            dbo.Mn ON dbo.DCF.id = dbo.Mn.id'

exec sp_executesql @sql

另外,请始终指定字符串类型的长度,例如varchar(10)代替varchar。如果在声明变量时仅使用varchar,则SQL Server会使其varchar(1)不符合您的预期。