oracle數(shù)據(jù)庫中l(wèi)istagg函數(shù)使用詳解
listagg是oracle11.2增加的特性。
功能類似wmsys.wm_concat函數(shù),即將數(shù)據(jù)分組后,把指定列的數(shù)據(jù)通過指定符號合并。
--listagg()函數(shù),列轉(zhuǎn)行。 在每個分組內(nèi),LISTAGG根據(jù)order by子句對列值進行排序,將排序后的結(jié)果拼接起來。
--基本語法;listagg(待處理列,連接符號) 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é)校,然后拼接時按照性別排序
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ū)別與簡單使用
1:區(qū)別
LISTAGG 和 STRING_AGG 都是用于在 SQL 查詢中將多個值合并為單個字符串的函數(shù),但它們屬于不同的數(shù)據(jù)庫系統(tǒng)。
LISTAGG是 Oracle 數(shù)據(jù)庫中的聚合函數(shù),用于將多行的值合并為一個字符串,并且可以指定分隔符。STRING_AGG是 SQL Server 中的聚合函數(shù),也用于將多行的值合并為一個字符串,并且可以指定分隔符。
2:語法結(jié)構(gòu)
2.1 LISTAGG 函數(shù)的語法結(jié)構(gòu)如下:
LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY order_expression) [OVER (analytic_clause)]
- expression:要合并的表達式,通常是一個列或計算值。
- delimiter:用于分隔合并的值的分隔符。
- ORDER BY order_expression:可選部分,用于指定合并的順序。如果不提供
ORDER BY子句,合并的順序?qū)⒉皇芸刂啤?/li> - analytic_clause:可選部分,通常用于窗口函數(shù)。在常規(guī)用法中,這部分通常不會出現(xiàn)。
2.2 STRING_AGG 函數(shù)的語法結(jié)構(gòu)如下:
STRING_AGG (expression, separator)
- expression:要合并的表達式,通常是一個列或計算值。
- separator:用于分隔合并的值的分隔符。
總結(jié)
到此這篇關(guān)于oracle數(shù)據(jù)庫中l(wèi)istagg函數(shù)使用的文章就介紹到這了,更多相關(guān)oracle listagg函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle EBS工具選項:關(guān)閉其他表單修改方法
這篇文章主要介紹了Oracle EBS工具選項關(guān)閉其他表單修改方法,包括通過SQL語句永久打開或關(guān)閉這個選項的方法,需要的朋友可以了解下。2017-09-09
使用Oracle數(shù)據(jù)庫登錄時被告知用戶被鎖怎么解決
這篇文章主要介紹了使用Oracle數(shù)據(jù)庫登錄時被告知用戶被鎖怎么解決的相關(guān)資料,需要的朋友可以參考下2016-07-07
使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫時表名帶下劃線問題的解決方法
這篇文章主要介紹了使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫時表名帶下劃線的問題解決 的相關(guān)資料,需要的朋友可以參考下2016-08-08
Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法
我們在測試Oracle Select AI(自然語言查詢數(shù)據(jù)庫)時,發(fā)現(xiàn)Run Statement中文顯示正常,而Run Script中文顯示亂碼,所以本文給大家介紹了Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法,需要的朋友可以參考下2024-05-05

