程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫中行轉列以及Join用法總結

Oracle數據庫中行轉列以及Join用法總結

編輯:Oracle數據庫基礎

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 :

  1. select * from A a, B b where a.id = b.aId 與  
  2. select * from A a inner join B b on a.id = b.aId 是一樣的; 

2. left join 與left outer join:

  1. select * from A a left join B b on (a.id = b.aId); 

此時,不管B中有沒有對應A的記錄,都會查出A表中的所有記錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved