• wmsys.wm_concat的几个用法


    今天才发现了wmsys.wm_concat这个有趣有用的函数,它的作用是以','链接字符。

    例子如下:

    SQL> create table idtable (id number,name varchar2(30));

    Table created

    SQL> insert into idtable values(10,'ab');

    1 row inserted

    SQL> insert into idtable values(10,'bc');

    1 row inserted

    SQL> insert into idtable values(10,'cd');

    1 row inserted

    SQL> insert into idtable values(20,'hi');

    1 row inserted

    SQL> insert into idtable values(20,'ij');

    1 row inserted
    SQL> insert into idtable values(20,'mn');

    1 row inserted

    SQL> select * from idtable;

            ID NAME
    ---------- ------------------------------
            10 ab
            10 bc
            10 cd
            20 hi
            20 ij
            20 mn

    6 rows selected
    SQL> select id,wmsys.wm_concat(name) name from idtable
      2  group by id;

            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab,bc,cd
            20 hi,ij,mn

    SQL> select id,wmsys.wm_concat(name) over (order by id) name from idtable;

            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab,bc,cd
            10 ab,bc,cd
            10 ab,bc,cd
            20 ab,bc,cd,hi,ij,mn
            20 ab,bc,cd,hi,ij,mn
            20 ab,bc,cd,hi,ij,mn

    6 rows selected

    SQL> select id,wmsys.wm_concat(name) over (order by id,name) name from idtable;

            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab
            10 ab,bc
            10 ab,bc,cd
            20 ab,bc,cd,hi
            20 ab,bc,cd,hi,ij
            20 ab,bc,cd,hi,ij,mn

    6 rows selected

    个人觉得这个用法比较有趣.

    SQL> select id,wmsys.wm_concat(name) over (partition by id) name from idtable;

            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab,bc,cd
            10 ab,bc,cd
            10 ab,bc,cd
            20 hi,ij,mn
            20 hi,ij,mn
            20 hi,ij,mn

    6 rows selected

    SQL> select id,wmsys.wm_concat(name) over (partition by id,name) name from idtable;

            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab
            10 bc
            10 cd
            20 hi
            20 ij
            20 mn

    6 rows selected

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/YY_MM_DD/archive/2008/10/30/3182953.aspx

  • 相关阅读:
    git撤销修改
    python参数组合
    java打包jar后,使之一直在linux上运行,不随终端退出而关闭
    输入流加载资源文件的3种方式
    ActiveMQ集群下的消息回流功能
    activemq在一台服务器上启动多个Broker
    JAVA多线程下载
    829. 连续整数求和-leetcode
    mysql笔记-索引
    redis源码学习-skiplist
  • 原文地址:https://www.cnblogs.com/sumsen/p/2525786.html
Copyright © 2020-2023  润新知