首页 > 解决方案 > String_agg 模拟

问题描述

您好我正在使用 SQL Server 2014,并且正在尝试使用文本列。我知道有一个新函数 STRING_AGG 可以使用分隔符连接多个列,但是 STRING_AGG 函数适用于 SQL Server 2017 及更高版本。请帮助我进行等效查询以实现此目的。附件是我的数据样子。我期待这样的结果

案例表:

CASES
--------    
CS03972981  
CS03245184  
CS04054200  
CS02808145  
CS01618494  
CS03873177  

COMMENTS_TABLE:

CASES        COMMENTS   
----------   ---------  
CS03972981  ABC
CS03972981  ABC1
CS03972981  ABC2
CS03972981  ABC3
CS03245184  DEF
CS03245184  DEF1
CS03245184  DEF2
CS04054200  GHI
CS02808145  JKL
CS01618494  MNO
CS01618494  MNO1
CS01618494  MNO2
CS01618494  MNO3
CS01618494  MNO4
CS03873177  PQR

结果表:

CS03972981  ABC,ABC1,ABC2,ABC3
CS03245184  DEF,DEF1,DEF2
CS04054200  GHI
CS02808145  JKL
CS01618494  MNO,MNO1,MNO2,MNO3,MNO4
CS03873177  PQR

欣赏,克里希纳。

标签: sqlsql-serversql-server-2014

解决方案


您需要使用 XML 方法:

select c.*,
       stuff( (select ',' + co.comments
               from comments co
               where co.cases = c.cases
               for xml path('')
              ), 1, 1, ''
            ) as all_comments
from cases c;

推荐阅读