加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门站长网 (https://www.0592zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如果第一列值相同,则Concat第二列值

发布时间:2021-02-07 04:24:31 所属栏目:MsSql教程 来源:网络整理
导读:我有一个像下面的查询和列出的输出: SELECT DISTINCT TRACKING_NUM,TITLE_OF_DOC_SEC FROM some_table WHERE TRACKING_NUM IS NOT NULL; O / P: TRACKING_NUM TITLE_OF_DOC_SEC007 Email Flow007 Test Bug 53306007 Title 1119007 Title Test007 test bu

我有一个像下面的查询和列出的输出:

SELECT DISTINCT TRACKING_NUM,TITLE_OF_DOC_SEC 
FROM some_table  
WHERE  TRACKING_NUM IS NOT NULL;

O / P:

TRACKING_NUM   TITLE_OF_DOC_SEC
007            Email Flow
007            Test Bug 53306
007            Title 1119
007            Title Test
007            test bug
009            1156
089            Title 21173
098            test Doc Section

我想重新编写查询,以便获得如下输出:

TRACKING_NUM    TITLE_OF_DOC_SEC
007             Email Flow,Test Bug 53306,Title 1119,Title Test,test bug
009             1156
089             Title 21173
098             test Doc Section

有人可以帮忙吗?

解决方法

在11g中使用Listagg()或在10g中使用WM_Concat():
SELECT LISTAGG(TITLE_OF_DOC_SEC,',') WITHIN GROUP (ORDER BY TRACKING_NUM) AS TITLE_OF_DOC_SEC 
     FROM your table
    WHERE....

   SELECT WM_CONCAT(TITLE_OF_DOC_SEC) AS TITLE_OF_DOC_SEC
     FROM your table
    WHERE....

(编辑:厦门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读