在oracle中行轉列,可以利用decode函式:
如有學生表a:
idname
subject
score1張三
語文902張三
數學803李四
語文994李四
數學785張三
英語89
現要轉換成下表:
name
語文數學
英語張三
9080
89李四
9978
這是乙個典型的行轉列過程,只需如下sql即可:
select name,
sum(decode(subject,'語文', score, null)), sum(decode(subject,'數學', score, null)), sum(decode(subject,'英語', score, null))
from a group by name;
關於join:
1.inner join :
select * from a a, b b where a.id = b.aid 與
select * from a a inner join b b on a.id = b.aid 是一樣的;
2. left join 與 left outer join:
select * from a a left join b b on (a.id = b.aid);
此時,不管b中有沒有對應a的記錄,都會查出a表中的所有記錄;
Oracle資料庫中行轉列以及Join用法總結
oracle資料庫中行轉列以及join用法是本文我們主要要介紹的內容,我們知道,在oracle中行轉列,可以利用decode函式來實現.我們假設有以下的學生表a,如下所示 id name subject score 1 張三 語文 90 2 張三 數學 80 3 李四 語文 99 4 李四 數學 7...
mysql中行轉列
1 mysql中可以行轉列。通過group concat 函式。如 select group concat name from resources group by type 將name列的值轉化為一行,2 預設是之間用逗號隔開,還可以自定義符號來作為隔開。如使用 來隔開。如 select grou...
oracle中行轉列的sql語句動態
create table t test city varchar2 255 not null,year number 4 not null,month number 2 not null,sell amount number 26,2 comment on table t test is 各月世聯在...