问题描述
我有以下Case语句,希望将其显示为输出中的列值,以便结果集的格式如下:
SELECT
l.Title as List,CASE
WHEN _Custom57 between 13 and 17 THEN '13-17'
WHEN _Custom57 between 18 and 24 THEN '18-24'
WHEN _Custom57 between 25 and 34 THEN '25-34'
WHEN _Custom57 between 35 and 44 THEN '35-44'
WHEN _Custom57 between 45 and 54 THEN '45-54'
WHEN _Custom57 >= 55 THEN '55-64'
WHEN _Custom57 >= 65 THEN '65+'
END as Age,COUNT(r.ID) as RecipCount
FROM mytable (NOLOCK)```
解决方法
有条件的聚合
<input type="number" @bind="@object.AllocationPercentage" />
,
您可以使用数据透视表构建查询。.下面的示例-
SELECT * from
(SELECT
l.Title as List,CASE
WHEN _Custom57 between 13 and 17 THEN '17 and under'
WHEN _Custom57 between 18 and 24 THEN '18-24'
WHEN _Custom57 between 25 and 34 THEN '25-34'
WHEN _Custom57 between 35 and 44 THEN '35-44'
WHEN _Custom57 between 45 and 54 THEN '45-54'
WHEN _Custom57 >= 55 THEN '55-64'
WHEN _Custom57 >= 65 THEN '65+'
END as Age,COUNT(r.ID) as RecipCount
FROM mytable) t
PIVOT (
sum(RecipCount) for age in ([17 and under],[18-24],[25-34],[35-44],[45-54])
) as PVT