oracle資料庫中行轉列以及join用法是本文我們主要要介紹的內容,我們知道,在oracle中行轉列,可以利用decode函式來實現.我們假設有以下的學生表a,如下所示:
id name subject score
1 張三 語文 90
2 張三 數學 80
3 李四 語文 99
4 李四 數學 78
5 張三 英語 89
現要轉換成下表:
name 語文 數學 英語
張三 90 80 89
李四 99 78
這是乙個典型的行轉列過程,只需如下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中行轉列,可以利用decode函式 如有學生表a idname subject score1張三 語文902張三 數學803李四 語文994李四 數學785張三 英語89 現要轉換成下表 name 語文數學 英語張三 9080 89李四 9978 這是乙個典型的行轉列過程,只需如下sq...
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 各月世聯在...
Oracle中行轉列,列轉行pivot的用法
測試資料準備 建表 drop table saleslist create table saleslist kehu varchar2 20 客戶 shangpin varchar2 20 商品名稱 salesnum number 8 銷售數量 插入資料 declare 談幾個客戶 cursor l...