Oracle中行轉列以及Join小總結

2021-05-27 15:48:55 字數 788 閱讀 1110

在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 各月世聯在...