Oracle多行數(shù)據(jù)合并為一行數(shù)據(jù)并將列數(shù)據(jù)轉(zhuǎn)為字段名三種方式
實現(xiàn)查詢效果
原數(shù)據(jù)
| FZ | PROJECT | VALUE |
|---|---|---|
| 1 | 電腦 | $1600 |
| 1 | 手機(jī) | $12 |
| 1 | 導(dǎo)管 | $1 |
| 2 | 電腦 | $2 |
| 2 | 手機(jī) | $22 |
方式一:MAX()
數(shù)據(jù)效果
| FZ | 電腦 | 手機(jī) | 導(dǎo)管 |
|---|---|---|---|
| 1 | $1600 | $12 | $1 |
| 2 | $2 | $22 |
SQL
根據(jù)FZ字段篩選并分組,MAX支持字符內(nèi)容,SUN()同樣支持,但是只能是數(shù)字類型。
SELECT FZ, MAX(CASE WHEN PROJECT = '電腦' THEN VALUE END) 電腦, MAX(CASE WHEN PROJECT = '手機(jī)' THEN VALUE END) 手機(jī), MAX(CASE WHEN PROJECT = '導(dǎo)管' THEN VALUE END) 導(dǎo)管 FROM TABLE01 GROUP BY FZ
此方法沒有數(shù)據(jù)庫類型限制,MySQL、Oracle、達(dá)夢均可。
方式二:LISTAGG()
數(shù)據(jù)效果
| FZ | PROJECT |
|---|---|
| 1 | 電腦,手機(jī),導(dǎo)管 |
此方法僅僅是合并列內(nèi)容,便于整合。
SELECT FZ,LISTAGG(PROJECT,',') PROJECT FROM TABLE01 WHERE FZ = 1;
listagg函數(shù)是在oracle11g后新增的,是一個實現(xiàn)字符串聚合的內(nèi)建函數(shù)。也可以實現(xiàn)行轉(zhuǎn)列的功能,將某個字段的多行數(shù)據(jù)合并成一條。
用法說明:
- LISTAGG('需要拼接的數(shù)據(jù)表中的字段','分隔符') WITHIN GROUP( ORDER BY '同前面,需要拼接的數(shù)據(jù)表中的字段')
- 用法類似聚合函數(shù),通過Group by語句,把每個Group的一個字段,拼接起來。
方式三:WM_CONCAT()
數(shù)據(jù)效果
| FZ | PROJECT |
|---|---|
| 1 | 電腦,手機(jī),導(dǎo)管 |
| 2 | 電腦,手機(jī) |
此方法與方法二相關(guān)相同,但適合于Oracle數(shù)據(jù)庫。
SELECT FZ,WM_CONCAT(PROJECT,',') PROJECT FROM TABLE01 --WHERE FZ = 1 GROUP BY FZ;
總結(jié)
到此這篇關(guān)于Oracle多行數(shù)據(jù)合并為一行數(shù)據(jù)并將列數(shù)據(jù)轉(zhuǎn)為字段名的文章就介紹到這了,更多相關(guān)Oracle多行數(shù)據(jù)合并一行數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法
這篇文章主要介紹了在Oracle數(shù)據(jù)庫中同時更新兩張表的簡單方法,同時介紹了一種差異性合并更新的方法,需要的朋友可以參考下2015-11-11
Oracle存儲過程里操作BLOB的字節(jié)數(shù)據(jù)的辦法
該篇文章介紹了如何在Oracle存儲過程中操作BLOB的字節(jié)數(shù)據(jù),作者研究了如何獲取BLOB的字節(jié)長度、如何使用DBMS_LOB包進(jìn)行BLOB操作、如何進(jìn)行字節(jié)級操作以及如何使用UTL_RAW包,感興趣的朋友一起看看吧2025-03-03
Orcale權(quán)限、角色查看創(chuàng)建方法
查看當(dāng)前用戶擁有的系統(tǒng)權(quán)限、創(chuàng)建用戶、授予擁有會話的權(quán)限、授予無空間限制的權(quán)限等等,感興趣的朋友可以參考下哈,希望對你有所幫助2013-05-05
使用 Oracle 數(shù)據(jù)庫進(jìn)行基于 JSON 的應(yīng)用程序開發(fā)
本文檔概述了 Oracle Database 19c 和 21c 版本中包含的功能和增強(qiáng)功能以??及相關(guān)的 Oracle 技術(shù),以及為什么 Oracle Database 中的 JSON 功能非常適合滿足當(dāng)今開發(fā)人員尋求文檔存儲來持久化、查詢和處理應(yīng)用程序數(shù)據(jù)的需求,感興趣的朋友一起看看吧2025-04-04
解決The?Network?Adapter?could?not?establish?the?conn問題
這篇文章主要介紹了解決The?Network?Adapter?could?not?establish?the?conn問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合
這篇文章主要介紹了一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合,包括in和not in的使用等一些細(xì)節(jié)上的使用建議,需要的朋友可以參考下2016-01-01

