gpt4 book ai didi

sql-server - 使用 case 语句的 SQL Server 数据透视表

转载 作者:行者123 更新时间:2023-12-02 09:32:19 25 4
gpt4 key购买 nike

我正在尝试导出一些数据,我想我需要在我的数据透视代码中加入一个 case 语句,但我不确定如何。我有下表:

ID      AreaCode
1001 1501
1001 1502
1001 2301
1031 1010
1031 3012
1048 2304
1048 3012
1048 4022

每个 AreaCode 的第一个数字指的是一个 body 区域,我使用下面的代码来指示哪个 body 区域受到影响:
select id,
case when left(areaID,1)=1 then 'Yes' end Head,
case when left(areaID,1)=2 then 'Yes' end Face,
case when left(areaID,1)=3 then 'Yes' end Neck,
case when left(areaID,1)=4 then 'Yes' end Abdo
from #testcase

这给了我以下内容:
id      Head    Face    Neck    Abdo
1001 Yes NULL NULL NULL
1001 Yes NULL NULL NULL
1001 NULL Yes NULL NULL
1031 Yes NULL NULL NULL
1031 NULL NULL Yes NULL
1048 NULL Yes NULL NULL
1048 NULL NULL Yes NULL
1048 NULL NULL NULL Yes

但是,我需要我的输出表为每个 id 包含一行,如下所示:
id      Head    Face    Neck    Abdo
1001 Yes Yes Null Null
1031 Yes Null Yes Null
1048 Null Yes Yes Yes

可以将我的案例陈述合并到一个支点中以实现这一目标吗?谢谢

最佳答案

您需要使用 aggregate顶部 case声明

SELECT id,
Max(CASE
WHEN LEFT(areaID, 1) = 1 THEN 'Yes'
END) Head,
Max(CASE
WHEN LEFT(areaID, 1) = 2 THEN 'Yes'
END) Face,
Max(CASE
WHEN LEFT(areaID, 1) = 3 THEN 'Yes'
END) Neck,
Max(CASE
WHEN LEFT(areaID, 1) = 4 THEN 'Yes'
END) Abdo
FROM #testcase
GROUP BY id

关于sql-server - 使用 case 语句的 SQL Server 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31671886/

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