日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle的 listagg() WITHIN GROUP ()函数使用

發布時間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle的 listagg() WITHIN GROUP ()函数使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.使用條件查詢? 查詢部門為20的員工列表

??? -- 查詢部門為20的員工列表
??? SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20' ;

??? 效果:


2.使用? listagg() WITHIN GROUP ()? 將多行合并成一行

??? SELECT
?? ??? ?T .DEPTNO,
?? ??? ?listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) names
??? FROM
?? ??? ?SCOTT.EMP T
??? WHERE
?? ??? ?T .DEPTNO = '20'
??? GROUP BY
?? ??? ?T .DEPTNO

??? 效果:


3. 使用 listagg() within GROUP () over? 將多行記錄在一行顯示

??? SELECT
?? ??? ?T .DEPTNO,
?? ??? ?listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME)? over(PARTITION BY T .DEPTNO)
??? FROM
?? ??? ?SCOTT.EMP T
??? WHERE
?? ??? ?T .DEPTNO = '20'

??? 效果:


??????? 注:使用的表數據是oracle 用戶scott下的emp(員工)表

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

當你的表X中有A,B兩列,數據如下

A  B

a  1

a  2

a  3

b  1

b  2

b  3

想讓數據以 a|1|2|3 , b|1|2|3 格式顯示可使用listagg()

1、使用listagg() + group by

select A,B,listagg(B,'|') within GROUP (order by A) ?C from X group by A;

?over(partition?by class?order?by?sroce)?按照sroce排序進行累計,order?by是個默認的開窗函數,按照class分區。

2、使用listagg() + over(partition by ?)

select A,B listagg(B,'|') within Group(order by A) over(partition by A) ?C from X;


DBMS_LOB.SUBSTR(col1)不傳其它參數就是全部讀取

DBMS_LOB.SUBSTR(col1,10,1)表示從第1個字節開始取出10個字節

DBMS_LOB.SUBSTR(CLOB_VAR,32767)表示截取CLOB變量保存的全部數據

DBMS_LOB.FILECLOSE(IMG_BFILE)關閉文件

轉載于:https://www.cnblogs.com/sjxbg/p/9859100.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Oracle的 listagg() WITHIN GROUP ()函数使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。