Sql-Server

將單列中的數據劃分為多列

  • October 23, 2018

我有像這樣的源數據

Name Is_Trget
a     Yes
s     No
d     Yes
f     Yes
a     Yes
S     No

從這個源數據的預期輸出是

Name Is_Yes Is_No
a    2      0
s    0      2
d    1      0
f    1      0

我需要為特定名稱計算是和否。

有人可以幫忙嗎。

SELECT Name, 
      SUM(CASE Is_Trget WHEN 'Yes' THEN 1 ELSE 0 END) Is_Yes,
      SUM(CASE Is_Trget WHEN 'No' THEN 1 ELSE 0 END) Is_No
FROM source
GROUP BY Name;

小提琴

這是另一種使用方法PIVOT

SELECT  Name
,       Is_Yes  = Yes
,       Is_No   = No
FROM YourTable AS A
PIVOT (COUNT(Is_Trget) FOR Is_Trget IN ([Yes], [No])) AS PivotTable

引用自:https://dba.stackexchange.com/questions/220784