欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle多行數(shù)據(jù)合并為一行數(shù)據(jù)并將列數(shù)據(jù)轉(zhuǎn)為字段名三種方式

 更新時(shí)間:2024年06月28日 09:12:35   作者:herozhi0821  
怎么合并多行記錄的字符串,一直是oracle新手喜歡問(wèn)的SQL問(wèn)題之一,下面這篇文章主要給大家介紹了關(guān)于Oracle多行數(shù)據(jù)合并為一行數(shù)據(jù)并將列數(shù)據(jù)轉(zhuǎn)為字段名的三種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

實(shí)現(xiàn)查詢(xún)效果

原數(shù)據(jù)

FZPROJECTVALUE
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ù)字類(lèi)型。

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

此方法沒(méi)有數(shù)據(jù)庫(kù)類(lèi)型限制,MySQL、Oracle、達(dá)夢(mèng)均可。

方式二:LISTAGG()

數(shù)據(jù)效果

FZPROJECT
1電腦,手機(jī),導(dǎo)管

此方法僅僅是合并列內(nèi)容,便于整合。

SELECT FZ,LISTAGG(PROJECT,',') PROJECT 
FROM TABLE01 
WHERE FZ = 1;

listagg函數(shù)是在oracle11g后新增的,是一個(gè)實(shí)現(xiàn)字符串聚合的內(nèi)建函數(shù)。也可以實(shí)現(xiàn)行轉(zhuǎn)列的功能,將某個(gè)字段的多行數(shù)據(jù)合并成一條。

用法說(shuō)明:

  • LISTAGG('需要拼接的數(shù)據(jù)表中的字段','分隔符') WITHIN GROUP( ORDER BY '同前面,需要拼接的數(shù)據(jù)表中的字段')
  • 用法類(lèi)似聚合函數(shù),通過(guò)Group by語(yǔ)句,把每個(gè)Group的一個(gè)字段,拼接起來(lái)。

方式三:WM_CONCAT()

數(shù)據(jù)效果

FZPROJECT
1電腦,手機(jī),導(dǎo)管
2電腦,手機(jī)

此方法與方法二相關(guān)相同,但適合于Oracle數(shù)據(jù)庫(kù)。

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • oracle 使用sql獲取數(shù)據(jù)庫(kù)表、表的字段的多種方法

    oracle 使用sql獲取數(shù)據(jù)庫(kù)表、表的字段的多種方法

    使用sql獲取數(shù)據(jù)庫(kù)表,表的字段的方法有很多,本文整理了幾個(gè)常用且實(shí)用的方法,需要的朋友可以參考下
    2013-11-11
  • Oracle對(duì)字段的增刪改方法分享

    Oracle對(duì)字段的增刪改方法分享

    這篇文章給大家分享了Oracle對(duì)字段的增刪改語(yǔ)句,對(duì)大家日常操作Oracle非常實(shí)用,有需要的可以參考借鑒。
    2016-08-08
  • Oracle臨時(shí)表空間刪除和重建實(shí)現(xiàn)過(guò)程

    Oracle臨時(shí)表空間刪除和重建實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了Oracle臨時(shí)表空間刪除和重建實(shí)現(xiàn)過(guò)程,臨時(shí)表空間是NOLOGGING模式以及它不保存永久類(lèi)型對(duì)象,因此即使數(shù)據(jù)庫(kù)損毀,做Recovery也不需要恢復(fù)Temporary?Tablespace。下文更多詳細(xì)內(nèi)容介紹需要的小伙伴可以參考一下
    2022-03-03
  • Oracle判斷是否需要重建索引的詳細(xì)步驟

    Oracle判斷是否需要重建索引的詳細(xì)步驟

    Oracle數(shù)據(jù)庫(kù)中的重建索引(Rebuild Index)是一個(gè)維護(hù)操作,用于更新或完全重構(gòu)已有的索引結(jié)構(gòu),當(dāng)索引損壞、性能下降或者需要優(yōu)化時(shí),可以執(zhí)行此操作,本文給大家介紹了Oracle判斷是否需要重建索引的詳細(xì)步驟,需要的朋友可以參考下
    2024-08-08
  • Oracle 實(shí)現(xiàn)將查詢(xún)結(jié)果保存到文本txt中

    Oracle 實(shí)現(xiàn)將查詢(xún)結(jié)果保存到文本txt中

    這篇文章主要介紹了Oracle 實(shí)現(xiàn)將查詢(xún)結(jié)果保存到文本txt中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Oracle中的高效SQL編寫(xiě)PARALLEL解析

    Oracle中的高效SQL編寫(xiě)PARALLEL解析

    這篇文章主要介紹了Oracle中的高效SQL編寫(xiě)PARALLEL解析,在Oracle中,PARALLEL(并行)方式最大化調(diào)用計(jì)算機(jī)資源來(lái)成倍提高數(shù)據(jù)分析效率,這個(gè)在Oracle 9i之后的版本可以使用,需要的朋友可以參考下
    2023-07-07
  • Oracle數(shù)據(jù)庫(kù)聚合函數(shù)XMLAGG詳解(全網(wǎng)最全)

    Oracle數(shù)據(jù)庫(kù)聚合函數(shù)XMLAGG詳解(全網(wǎng)最全)

    在SQL中,合函數(shù)用于對(duì)一組值進(jìn)行計(jì)算并返回單一的值,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)聚合函數(shù)XMLAGG的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 深入Oracle的left join中on和where的區(qū)別詳解

    深入Oracle的left join中on和where的區(qū)別詳解

    本篇文章是對(duì)Oracle的left join中on和where的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Oracle數(shù)據(jù)庫(kù)中 call 和 exec的區(qū)別

    Oracle數(shù)據(jù)庫(kù)中 call 和 exec的區(qū)別

    在sqlplus中這兩種方法都可以使用: exec pro_name(參數(shù)1..); call pro_name(參數(shù)1..); 但是這兩者有什么區(qū)別呢?今天小編給大家介紹下oracle數(shù)據(jù)庫(kù)中 call 和 exec的區(qū)別,感興趣的朋友一起看看吧
    2016-09-09
  • Oracle使用dblink實(shí)現(xiàn)跨庫(kù)訪問(wèn)的實(shí)例代碼

    Oracle使用dblink實(shí)現(xiàn)跨庫(kù)訪問(wèn)的實(shí)例代碼

    dbLink是簡(jiǎn)稱(chēng),全稱(chēng)是databaselink,database link是定義一個(gè)數(shù)據(jù)庫(kù)到另一個(gè)數(shù)據(jù)庫(kù)的路徑的對(duì)象,database link允許你查詢(xún)遠(yuǎn)程表及執(zhí)行遠(yuǎn)程程序,本文給大家介紹了Oracle如何使用dblink實(shí)現(xiàn)跨庫(kù)訪問(wèn),需要的朋友可以參考下
    2024-03-03

最新評(píng)論