sql - 在 SQL 中创建 CSV 字符串

标签 sql sql-server sql-server-2008

<分区>

我有一个包含以下值的表:

NAME      Value1       Value2
--------------------------------
N1          1           10
N1          2           11
N2          3           12
N2          4           13
N2          5           14

我想创建以下结果:

NAME      Value1        Value2_CSV
-----------------------------------
N1          1           10,11
N1          2           10,11
N2          3           12,13,14
N2          4           12,13,14
N2          5           12,13,14

有人可以帮忙吗? 提前致谢

最佳答案

这是聚合字符串连接的变体——但没有聚合。

我会这样写:

select t.name, t.value1,
       stuff((select ',' + cast(t2.value2 as varchar(8000))
              from table t2
              where t2.name = t.name
              order by t2.value1
              for xml path ('')
             ), 1, 1, '') as value2_csv
from table t;

关于sql - 在 SQL 中创建 CSV 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106150/

相关文章:

sql-server - SQL Server 管理工作室 2008 : save database diagrams without applying tables just yet

SQL:IN 子句的问题,如何返回所有值,甚至是重复值

c# - 如何处理 SQL DB 中的乐观并发冲突?

sql - 如何从 SQL Server 中删除大记录?

sql-server-2008 - 在同一个选择中使用别名

sql - 查找 PC 型号对

sql - 如何评估保存在 SQL Server 中 nvarchar 变量中的数学表达式

mysql - 它没有在查询中显示任何结果

mysql - 对于社交网站来说,最好/最高效的 DBMS 是什么?

sql - SQL Server 中基于函数的索引