如何使用sql語法,將資料呈現方式改為橫向呈現

使用SQL將資料依橫向的方式呈現

 

最近被要求希望資料能夠以橫向的方式呈現

但以前我的作法可能會將資料貼到excel中

在以手動的作法來一筆一筆調整

如果資料的筆數少的話

這個方法還可以接受

但…如果有上千筆呢?

這方法可能就很蠢了

有其他種的方法可以解決嗎?

答案是…有的

以下是我的範例

假設我有資料

 //tablename:得分明細

指標員工編號分數
A00000015
B00000018
C00000017
D00000016
E00000015
F00000011
G00000012
H00000018
 以下省略 

以上資料,員工人數有一千人,因表格太長所以以下省略

想要呈現的方式為

員工編號ABCDEFGH
000000158765128
000000263782570
以下省略        

如果用excel調整…可能會瘋掉

使用sql就方便多了

 

Select A.員工編號
             ,sum(A.A) AS A
           ,sum(A.B) AS B
           ,sum(A.C) AS C
           ,sum(A.D) AS D
           ,sum(A.E) AS E
           ,sum(A.F) AS F
           ,sum(A.G) AS G
From(
    Select 員工編號,
            CASE 指標 WHEN 'A'  THEN  分數 END AS A,
            CASE 指標 WHEN 'B'  THEN  分數 END AS B,
            CASE 指標 WHEN 'C'  THEN  分數 END AS C,
            CASE 指標 WHEN 'D   THEN  分數 END AS D,
            CASE 指標 WHEN 'E'  THEN  分數 END AS E,
            CASE 指標 WHEN 'F'  THEN  分數 END AS F,
            CASE 指標 WHEN 'G'  THEN  分數 END AS G,
    from 得分明細
) As A
Group by A.員工編號

這樣就可以解決了,夠簡單吧~^^