Oracle資料庫中行轉列以及Join用法總結

2021-08-31 17:04:09 字數 753 閱讀 7192

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...