【发布时间】:2020-02-14 13:13:25
【问题描述】:
我正在使用以下 T-SQL 语句返回一些值:
CASE WHEN month(m.pcp_startdate) = 1 THEN m.pcp_value ELSE NULL END AS January,
CASE WHEN month(m.pcp_startdate) = 2 THEN m.pcp_value ELSE NULL END AS Febuary,
CASE WHEN month(m.pcp_startdate) = 3 THEN m.pcp_value ELSE NULL END AS March,
CASE WHEN month(m.pcp_startdate) = 4 THEN m.pcp_value ELSE NULL END AS April,
CASE WHEN month(m.pcp_startdate) = 5 THEN m.pcp_value ELSE NULL END AS May,
CASE WHEN month(m.pcp_startdate) = 6 THEN m.pcp_valuen ELSE NULL END AS June,
CASE WHEN month(m.pcp_startdate) = 7 THEN m.pcp_value ELSE NULL END AS July,
CASE WHEN month(m.pcp_startdate) = 8 THEN m.pcp_value ELSE NULL END AS August,
CASE WHEN month(m.pcp_startdate) = 9 THEN m.pcp_value ELSE NULL END AS September,
CASE WHEN month(m.pcp_startdate) = 10 THEN m.pcp_value ELSE NULL END AS October,
CASE WHEN month(m.pcp_startdate) = 11 THEN m.pcp_value ELSE NULL END AS November,
CASE WHEN month(m.pcp_startdate) = 12 THEN m.pcp_value ELSE NULL END AS December
但是,这会在不同的行上返回所有这些值
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 208333.00
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 208333.00 NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL 208333.00 NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL 208333.00 NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL 208333.00 NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL 208333.00 NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL 208333.00 NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL 208333.00 NULL NULL NULL NULL NULL NULL NULL
NULL NULL NULL 208333.00 NULL NULL NULL NULL NULL NULL NULL NULL
NULL NULL 208333.00 NULL NULL NULL NULL NULL NULL NULL NULL NULL
NULL 208333.00 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
208333.00 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
有没有办法让它们出现在同一行?谢谢!
【问题讨论】:
-
仅供参考,您所拥有的是
CASE表达式,而不是Case(Switch) 语句。两者完全不同,后者在 SQL Server 中找不到。
标签: sql sql-server tsql case