[英]SQL Server CASE expression that does not result in waterfall
如果我有一个案例表达式,有没有一种方法不能像瀑布一样工作?
例如,如果我有以下数据集:
group value
---------------
derek 5
cait 1
david 2
denver 3
有没有办法可以显示以下结果
CASE
WHEN group like 'd%' then d
WHEN group like 'de% then de
ELSE other
以显示
group value
--------------
d 10
de 8
other 3
现在它显示为
group value
--------------
d 10
other 2
您可以改用left join
:
select coalesce(which, 'other'), sum(t.value)
from t left join
(values ('d%', 'd'), ('de%', 'de')
) v(pattern, which)
on t.group like v.pattern
group by which;
你可以使用联合。
SELECT 'd' [group], SUM(Value)[Value] FROM <table_name> WHERE [GROUP] LIKE 'd%'
UNION
SELECT 'de' [group], SUM(Value)[Value] FROM <table_name> WHERE [GROUP] LIKE 'de%'
UNION
SELECT 'other' [group], SUM(Value)[Value] FROM <table_name> WHERE [GROUP] NOT LIKE 'd%' OR [GROUP] NOT LIKE 'de%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.