我希望查询从属性中提供列别名,我试过这个但是没有用
$
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
$
答案 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)
不符合您的预期。