T-SQL 查询中的动态别名 [英] dynamic alias in T-SQL query

查看:35
本文介绍了T-SQL 查询中的动态别名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在为查询中的字段生成别名时遇到了问题,例如,它为我提供了去年和前一年的收入.我的理解是我可以做类似的事情:

I've got an issue generating an alias for a field in a query which for example gives me the revenue from last year and the year before. I was in the understanding that I could do something like :

SELECT 
    1234 AS 'REVENUE' + CAST (year(DATEADD(year,-1,getdate())) AS VARCHAR(20))
    4321 AS 'REVENUE' + CAST (year(DATEADD(year,-2,getdate())) AS VARCHAR(20))

但这行不通.有人知道如何完成这项工作吗?

But this doesn't work. Does somebody know how to get this done?

我想要一个像这样的桌子

I want to end up with a table like

rownr|revenue2014|revenue2013
-----------------------------
1    |1234       |4321

非常感谢!

问候尼尔斯

推荐答案

DECLARE @sql VARCHAR(1000);
SET @sql = 'SELECT 
    1234 AS REVENUE' + CAST (year(DATEADD(year,-1,getdate())) AS VARCHAR(20)) + ',
    4321 AS REVENUE' + CAST (year(DATEADD(year,-2,getdate())) AS VARCHAR(20))
PRINT @sql
EXEC (@sql)

在静态 SQL 查询中不可能做到这一点.所以只能这样了.

It is impossible to do that in the static SQL query. So only this way.

这篇关于T-SQL 查询中的动态别名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆