gpt4 book ai didi

sql - 我可以使用函数/表达式通过 T-SQL 中的 "As"语句命名列吗?

转载 作者:行者123 更新时间:2023-12-02 00:36:46 24 4
gpt4 key购买 nike

我希望根据用户对参数的选择动态命名查询中的列。

我的想法是,根据用户的选择,列将通过列/字段规范后的“As”命名。

这是我的例子:

Select Distinct

Case @DateParam

When 'Created' Then Convert(Varchar, h.wmhd_cre_date, 101)

When 'Action' Then Convert(Varchar, d.wmdt_date, 101)

End As CONCATENATE(@DateParm + 'Date'),

因此,如果用户为“创建”日期选择了参数,则列标题将显示“创建日期”。但是,如果他们为“Action”日期选择了参数,则该列将被命名为“ActionDate”。

我以前尝试过类似的事情,我开始意识到不能在“As”语句之后放置表达式。这是真的吗,或者有人有任何想法吗?

最佳答案

没错。不能通过表达式生成别名标识符。

但是你可以这样做:

SELECT DISTINCT
CASE WHEN @DateParam = 'Created' THEN CONVERT(varchar, h.wmhd_cre_date, 101) END AS CreatedDate,
CASE WHEN @DateParam = 'Action' THEN CONVERT(varchar, h.wmdt_date, 101) END AS ActionDate

如果您绝对必须以您描述的原始方式返回列,则需要使用动态 sql(例如,EXECEXEC sp_executesql)

关于sql - 我可以使用函数/表达式通过 T-SQL 中的 "As"语句命名列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4294614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com