新聞中心
Oracle數(shù)據(jù)庫(kù)中行轉(zhuǎn)列以及Join用法是本文我們主要要介紹的內(nèi)容,我們知道,在Oracle中行轉(zhuǎn)列,可以利用decode函數(shù)來(lái)實(shí)現(xiàn)。我們假設(shè)有以下的學(xué)生表A,如下所示:

| ID | NAME | SUBJECT | SCORE |
| 1 | 張三 | 語(yǔ)文 | 90 |
| 2 | 張三 | 數(shù)學(xué) | 80 |
| 3 | 李四 | 語(yǔ)文 | 99 |
| 4 | 李四 | 數(shù)學(xué) | 78 |
| 5 | 張三 | 英語(yǔ) | 89 |
現(xiàn)要轉(zhuǎn)換成下表:
| NAME | 語(yǔ)文 | 數(shù)學(xué) | 英語(yǔ) |
| 張三 | 90 | 80 | 89 |
| 李四 | 99 | 78 |
這是一個(gè)典型的行轉(zhuǎn)列過(guò)程,只需如下SQL即可:
select NAME, sum(decode(SUBJECT,'語(yǔ)文', SCORE, null)), sum(decode(SUBJECT,'數(shù)學(xué)', SCORE, null)), sum(decode(SUBJECT,'英語(yǔ)', SCORE, null)) from A group by NAME;
關(guān)于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);
此時(shí),不管B中有沒(méi)有對(duì)應(yīng)A的記錄,都會(huì)查出A表中的所有記錄。
關(guān)于Oracle數(shù)據(jù)庫(kù)中行轉(zhuǎn)列以及Join用法總結(jié)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
網(wǎng)頁(yè)名稱:Oracle數(shù)據(jù)庫(kù)中行轉(zhuǎn)列以及Join用法總結(jié)
網(wǎng)址分享:http://www.dlmjj.cn/article/dpoppgc.html


咨詢
建站咨詢
