【问题标题】:Concatenate multiple values to a single column using stuff() in SQL在 SQL 中使用 stuff() 将多个值连接到单个列
【发布时间】:2016-12-03 22:29:49
【问题描述】:
ID  | NAME  
----|--------  
1   |Ann  
2   |Jake  
1   |Julie  
3   |Paul  
2   |Shane  
4   |Kumi

我想使用stuff() 连接值,如下所示。并且单个值不应受stuff() 函数的影响。

ID  | NAME  
----|--------  
1   |Ann,Julie  
2   |Jake,Shane  
3   |Paul  
4   |Kumi

怎么做?

【问题讨论】:

  • 请同时添加您尝试过的内容和遇到的问题
  • 你用谷歌搜索了吗?

标签: sql-server string-aggregation


【解决方案1】:

STUFF 不进行连接,它用于 XML 执行此操作。Stuff 仅根据选择替换值

select id,
stuff((select ','+name from #t1 t2 where t1.id=t2.id for xml path('')),1,1,'')
from #t1 t1
group by  id

【讨论】:

    【解决方案2】:
    CREATE TABLE #A
    (ID INT, NAME VARCHAR(10))
    INSERT INTO #A VALUES
    (1,'ANN'),
    (2,'JAKE'),
    (1,'JULIE'),
    (3,'PAUL'),
    (2,'SHANE'),
    (4,'KUMI')
    
    SELECT DISTINCT ID ,
    STUFF((SELECT ','+NAME
    FROM #A T1
    WHERE T1.ID=T2.ID
    FOR XML PATH('')),1,1,'') FROM #A T2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2015-06-10
      • 1970-01-01
      • 2017-01-10
      相关资源
      最近更新 更多