ORACLE列值合併

ORACLE列值合併

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法。

在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAgg。

準備數據:

CREATE TABLE MyTest(xType NUMBER,City nvarchar2(200));
/

INSERT INTO MyTest(xType,City)
SELECT 1,N'北京' FROM dual UNION ALL
SELECT 1,N'上海' FROM dual UNION ALL
SELECT 1,N'广州' FROM dual UNION ALL
SELECT 2,N'武汉' FROM dual UNION ALL
SELECT 2,N'杭州' FROM dual UNION ALL
SELECT 2,N'厦门' FROM dual
COMMIT;
/

使用wm_Concat:

SELECT xType,wmsys.wm_concat(to_char(City)) AS xCity
FROM MyTest
GROUP BY xType

使用ListAgg:

SELECT xType,
       ListAgg(to_char(City),',') WITHIN GROUP(ORDER BY xType) AS xCity
FROM MyTest
GROUP BY xType

結果:

XTYPE          XCITY
———-   ————————————–
         1        北京,广州,上海
         2         杭州,武汉,厦门

備註:

0、上面在City列前都加了To_Char()函數,是為了防止出現亂碼的情況;

1、wm_concat 在ORACEL的官方文檔中沒有,不能保證各版本号的兼容性;

2、ListAgg是11g版本号才出現的新的聚集函數。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118419.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021.11激活(注册激活)

    (idea2021.11激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsaWN…

    2022年3月28日
    87
  • iOS5完美越狱后必装AppSync补丁教程

    iOS5完美越狱后必装AppSync补丁教程  iPhone4等设备完美越狱终于发布,不过完美越狱完成后如果给iPhone上安装从iPhone中文网或者其他网站上下载ipa后缀格式的软件和游戏,还有一项重要的工作就是在CYIDIA上安装ipa补丁AppSync5.0+,下面就教大家怎样安装。第一次进入Cydia程序需要选择“用户”,点击右上角“完成”选择界面底部的“管理”菜单,选择“软件源”菜单点右…

    2022年6月14日
    25
  • centos7.4安装docker_docker打包python应用

    centos7.4安装docker_docker打包python应用前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月29日
    10
  • iptables如何删除一条规则

    iptables如何删除一条规则

    2021年6月3日
    133
  • java游戏开发入门教程_JAVA制作游戏入门教程

    java游戏开发入门教程_JAVA制作游戏入门教程现在流行的游戏似乎都是用C或C++来开发的。在java平台上几乎没有很大型及可玩的流行游戏。由于java是个新生语言,他的许多特性还有待大家的发掘,但是我们不能否认Java在游戏编程方面的强大性。本文将带领大家一步一步学习编写Java游戏。最终打造属于自己的Java游戏。在开始之前我们得确认你已经安装了JavaJDK,并已经安装了浏览器软件如IE。本章是以Internet为开发对象,一步一步教大…

    2022年7月7日
    22
  • InnoDB学习之死锁[通俗易懂]

    InnoDB学习之死锁[通俗易懂]InooDB的死锁例子和死锁检测机制。

    2025年6月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号