oracle數(shù)據(jù)庫(kù)中l(wèi)istagg函數(shù)使用詳解
listagg是oracle11.2增加的特性。
功能類似wmsys.wm_concat函數(shù),即將數(shù)據(jù)分組后,把指定列的數(shù)據(jù)通過(guò)指定符號(hào)合并。
--listagg()函數(shù),列轉(zhuǎn)行。 在每個(gè)分組內(nèi),LISTAGG根據(jù)order by子句對(duì)列值進(jìn)行排序,將排序后的結(jié)果拼接起來(lái)。
--基本語(yǔ)法;listagg(待處理列,連接符號(hào)) within group(order by 用于拼接組內(nèi)排序字段)
select a.* from test_userinfo a;
--分組函數(shù):
select a.user_sex,listagg(a.user_school,',') within group(order by a.user_age) from test_userinfo a group by a.user_sex;
--分析函數(shù):根據(jù)年齡分區(qū),在分區(qū)內(nèi)部拼接學(xué)校,然后拼接時(shí)按照性別排序
select a.user_name,a.user_age,a.user_school,listagg(a.user_school,',') within group(order by a.user_sex) over (partition by a.user_age) from test_userinfo a;



附:LISTAGG () 和STRING_AGG () 函數(shù)的區(qū)別與簡(jiǎn)單使用
1:區(qū)別
LISTAGG 和 STRING_AGG 都是用于在 SQL 查詢中將多個(gè)值合并為單個(gè)字符串的函數(shù),但它們屬于不同的數(shù)據(jù)庫(kù)系統(tǒng)。
LISTAGG是 Oracle 數(shù)據(jù)庫(kù)中的聚合函數(shù),用于將多行的值合并為一個(gè)字符串,并且可以指定分隔符。STRING_AGG是 SQL Server 中的聚合函數(shù),也用于將多行的值合并為一個(gè)字符串,并且可以指定分隔符。
2:語(yǔ)法結(jié)構(gòu)
2.1 LISTAGG 函數(shù)的語(yǔ)法結(jié)構(gòu)如下:
LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY order_expression) [OVER (analytic_clause)]
- expression:要合并的表達(dá)式,通常是一個(gè)列或計(jì)算值。
- delimiter:用于分隔合并的值的分隔符。
- ORDER BY order_expression:可選部分,用于指定合并的順序。如果不提供
ORDER BY子句,合并的順序?qū)⒉皇芸刂啤?/li> - analytic_clause:可選部分,通常用于窗口函數(shù)。在常規(guī)用法中,這部分通常不會(huì)出現(xiàn)。
2.2 STRING_AGG 函數(shù)的語(yǔ)法結(jié)構(gòu)如下:
STRING_AGG (expression, separator)
- expression:要合并的表達(dá)式,通常是一個(gè)列或計(jì)算值。
- separator:用于分隔合并的值的分隔符。
總結(jié)
到此這篇關(guān)于oracle數(shù)據(jù)庫(kù)中l(wèi)istagg函數(shù)使用的文章就介紹到這了,更多相關(guān)oracle listagg函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將oracle的create語(yǔ)句更改為alter語(yǔ)句使用
本文將詳細(xì)介紹oracle的create語(yǔ)句更改為alter語(yǔ)句使,需要了解更多的朋友可以參考下2012-11-11
Oracle EBS工具選項(xiàng):關(guān)閉其他表單修改方法
這篇文章主要介紹了Oracle EBS工具選項(xiàng)關(guān)閉其他表單修改方法,包括通過(guò)SQL語(yǔ)句永久打開(kāi)或關(guān)閉這個(gè)選項(xiàng)的方法,需要的朋友可以了解下。2017-09-09
Oracle?VM?VirtualBox?虛擬機(jī)硬盤(pán)擴(kuò)容
這篇文章主要介紹了Oracle?VM?VirtualBox?虛擬機(jī)硬盤(pán)擴(kuò)容,VirtualBox中使用Ubuntu虛擬機(jī)中,出現(xiàn)了虛擬硬盤(pán)不夠用的情況,我們可以采取下文方式進(jìn)行擴(kuò)容,需要的朋友可以參考一下2022-03-03
使用Oracle數(shù)據(jù)庫(kù)登錄時(shí)被告知用戶被鎖怎么解決
這篇文章主要介紹了使用Oracle數(shù)據(jù)庫(kù)登錄時(shí)被告知用戶被鎖怎么解決的相關(guān)資料,需要的朋友可以參考下2016-07-07
使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫(kù)時(shí)表名帶下劃線問(wèn)題的解決方法
這篇文章主要介紹了使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫(kù)時(shí)表名帶下劃線的問(wèn)題解決 的相關(guān)資料,需要的朋友可以參考下2016-08-08
oracle查詢字段類型長(zhǎng)度等字段信息簡(jiǎn)單代碼示例
這篇文章主要給大家介紹了關(guān)于oracle查詢字段類型長(zhǎng)度等字段信息的相關(guān)資料,文中介紹了如何查詢Oracle數(shù)據(jù)庫(kù)中表的字符集和字段長(zhǎng)度類型,包括VARCHAR2字段的兩種表示方式及其區(qū)別,需要的朋友可以參考下2024-12-12
Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法
我們?cè)跍y(cè)試Oracle Select AI(自然語(yǔ)言查詢數(shù)據(jù)庫(kù))時(shí),發(fā)現(xiàn)Run Statement中文顯示正常,而Run Script中文顯示亂碼,所以本文給大家介紹了Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法,需要的朋友可以參考下2024-05-05
深入剖析哪些服務(wù)是Oracle 11g必須開(kāi)啟的
這篇文章主要介紹了哪些服務(wù)是Oracle 11g必須開(kāi)啟的以及這些服務(wù)的詳細(xì)介紹,需要的朋友可以參考下2014-08-08

