Oracle數據庫中行轉列以及Join用法總結
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用法總結就介紹到這里了,希望本次的介紹能夠對您有所收獲!
【編輯推薦】