oracle應用之聚合函式XMLAGG用法簡介

2021-09-25 03:44:50 字數 1045 閱讀 2081

xmlagg函式語法基本如圖,可以用於列轉行,列轉行函式在oracle裡有好幾種方法,wm_concat也可以做

這裡介紹wm_concat是因為xmlagg實現效果和wm_concat是一樣的,只是效能方面不一樣,注意:xmlagg最好排序一下,效能會好點

xmlagg例子:

需要實現乙個table,有一列的效果是:使用者姓名a(賬號a),使用者姓名b(賬號b)…這種格式。這就想到oracle的列轉行函式。可以用類似這種格式(a || 『(』 || b || 『)』),a表示使用者名字段,b表示賬號字段。

select xmlagg(xmlelement(e, bs.user_name || '(' || bs.user_code || ')', ',').extract('//text()'))

.getclobval(),

from t_flow_step fs

left join t_user bs

on fh.handler = bs.user_code

left join t_step_define sd

on fs.step_id = sd.step_id

group by sd.step_name

查詢出來,是用,分隔的資料,實現列轉行顯示

xmlagg常用語法:

select t.item,

xmlagg(xmlelement(e, t.rs_name, ',').extract('//text()'))

.getclobval() 材料名稱

from t_itm_rcv_stuff t groupby t.item;

wm_concat會有版本不相容問題,

oracle列轉行函式還有listagg,也可以用sys_connect_by_path來做,具體根據需求來

oracle聚合函式彙總

今天在做專案,講mysql專案轉換為oracle專案的時候,發現某些sql語句不相容 mysql語句如下 select column1,group concat shouyilv order by crete date as shouyilv from rconfigdata where colum...

oracle應用之sql小寫

本人不喜歡在sql裡面大小寫混合在一起,每次看到別人的sql,總是要轉換為小寫,如以下sql with t as select date 2014 05 06 time1,1 type,100 times from dual union all select date 2014 05 06 2,20...

Oracle應用之開窗函式筆記及應用場景

介紹oracle的開窗函式之前先介紹一下分析函式,因為開窗函式也屬於分析函式 分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是 對於每個組返回多行,而聚合函式對於每個組只返回一行。上面是開窗函式的簡單介紹。開窗函式指定了分析函式工作的資料視窗大小,這個資料視窗大小可能會隨著行的變化而變化...