XMLAGG函数语法基本如图,可以用于列转行,列转行函数在oracle里有好几种方法,wm_concat也可以做

这里介绍wm_concat是因为XMLAGG实现效果和wm_concat是一样的,只是性能方面不一样,注意:XMLAGG最好排序一下,性能会好点

XMLAGG例子:

需要实现一个table,有一列的效果是:用户姓名A(账号a),用户姓名B(账号b)...这种格式。这就想到oracle的列转行函数。可以用类似这种格式(a || '(' || b || ')'),a表示用户名字段,b表示账号字段。

<select id="listAllocatedHandlerInfo" resultType="AllocationHandlerInfoVo">
select XMLAGG(XMLELEMENT(e, bs.user_name || '(' || bs.user_code || ')', ',').extract('//text()'))
.getClobVal(),
sd.step_name approveStep
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
</select>

查询出来,是用,分隔的数据,实现列转行显示



XMLAGG常用语法:

select t.item,
XMLAGG(XMLELEMENT(e, t.rs_name, ',').extract('//text()'))
.getClobVal() 材料名称
from t_itm_rcv_stuff t groupby t.item;

wm_concat会有版本不兼容问题,https://blog.csdn.net/u014427391/article/details/84867390

oracle列转行函数还有listagg,也可以用sys_connect_by_path来做,具体根据需求来

最新文章

  1. sublime text 输入法候选词不跟随光标
  2. hao916,hao123,2345.com浏览器劫持-分析与清除
  3. App制作
  4. top命令如何列出所有进程
  5. CentOS6.5菜鸟之旅:关于搜索的shell命令
  6. Svn-如何清除eclipse中保存的svn用户名和密码
  7. NFS挂载根文件系统
  8. Decorator模式
  9. [POJ1050]To the Max(最大子矩阵,DP)
  10. 使用bash判断PATH中是否存在某个路径
  11. 字符型SQL注入
  12. 解决css引用图片不显示问题:background-image: url(../image/document.png);
  13. 第三章 MySQL高级查询(一)
  14. 1060. Are They Equal (25)
  15. mysql 5.7 json
  16. gulp打开gbk编码的html文件乱码
  17. NFS服务与crond服务
  18. hdu1890 splay维护区间翻转
  19. C语言编程中pid, tid以及真实pid的关系(转)
  20. ODAC(V9.5.15) 学习笔记(十一)TOraEncryptor、TOraPackage和TOraAlerter

热门文章

  1. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 9
  2. vue实现页面跳转(简易版)
  3. 黄聪:微信小程序 服务器 TLS1.0 1TLS.2 配置详细教学!
  4. solidity 智能合约之间的调用
  5. python字典的常用方法
  6. WCF通信简单学习实例
  7. JQuery操作样式以及JQuery事件机制
  8. 一个小事例,了解golang通道阻塞模式
  9. MySQL学习——操作数据库
  10. C++ 自增、自减运算符的重载和性能分析