2016-06-20 51 views
0

我有4列有id和其他列(A,B,C)有二進制值。如何在sql中使用逗號分隔符?

我想要得到如下結果,其列(A,B,C)其中value = 1。然後,特定的列名稱必須以逗號分隔值顯示在新列(D)中。

我想要下面的結果。誰能幫幫我嗎?

Id A B C D 
1 1 1 0 A,B 
2 0 1 0 B 
3 0 1 0 B 
4 1 0 1 A,C 
5 1 0 1 A,C 

回答

1

一個簡單CASE表達會做到這一點:

SELECT *, 
    D = 
     STUFF((
      CASE 
       WHEN A = 1 THEN ',A' 
       ELSE '' 
      END + 
      CASE 
       WHEN B = 1 THEN ',B' 
       ELSE '' 
      END + 
      CASE 
       WHEN C = 1 THEN ',C' 
       ELSE '' 
      END 
     ), 1, 1, '') 
FROM tbl 
+0

感謝Felix.This是什麼即時尋找。 – Perumal