試驗Oracle中實現行列轉換的方法(轉)

zhanglincon發表於2009-04-13
Create     table     test     (name     char(10),km     char(10),cj     Number)

insert     into     test     values('張三','語文',80)
insert     into     test     values('張三','數學',86)
insert     into     test     values('張三','英語',75)
insert     into     test     values('李四','語文',78)
insert     into     test     values('李四','數學',85)
insert     into     test     values('李四','英語',78)

commit;


怎樣實現成這樣:
name       語文       數學       英語
李四       78           85           83
張三       80           86           75

16:03:50     SQL>     select     *     from     test;

NAME                 KM                                     CJ
----------     ----------     ----------
張三                 語文                                 80
張三                 數學                                 86
張三                 英語                                 75
李四                 語文                                 78
李四                 數學                                 85
李四                 英語                                 78

已選擇6行。

已用時間:       00:     00:     00.47



16:03:55     SQL>     select     name,sum(decode(trim(km),'語文',cj,0))     語文,
16:03:58         2       sum(decode(trim(km),'數學',cj,0))     數學,
16:03:58         3       sum(decode(trim(km),'英語',cj,0))     英語
16:03:59         4       from     test     group     by     name;

NAME                             語文                 數學                 英語
----------     ----------     ----------     ----------
李四                                 78                     85                     78
張三                                 80                     86                     75

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8554499/viewspace-588873/,如需轉載,請註明出處,否則將追究法律責任。

相關文章