相关文章推荐
飞奔的山羊  ·  ms-sql server sql ...·  3 月前    · 
从容的生姜  ·  使用 Java 列出 Blob - ...·  3 月前    · 
乖乖的炒面  ·  AndroidApp.Invoke 方法 ...·  1 年前    · 
想旅行的小笼包  ·  excel vba pivot table ...·  2 年前    · 
胆小的豆浆  ·  bboss ...·  2 年前    · 

sqlserver列转行 逗号分隔符

在 SQL Server 中,可以使用 STUFF FOR XML PATH 函数将行数据转换为逗号分隔的列数据。

假设你有一个表 mytable ,其中包含以下列: id , name , value1 , value2 , value3 。要将 value1 , value2 , value3 转换为逗号分隔的列数据,可以使用以下查询:

SELECT id, name, 
       STUFF((SELECT ', ' + CAST(value AS VARCHAR(MAX))
              FROM (VALUES (value1), (value2), (value3)) AS v(value)
              WHERE v.value IS NOT NULL
              FOR XML PATH('')), 1, 2, '') AS values
FROM mytable;

这个查询中,使用子查询将 value1, value2, value3 合并为一个列,并将结果转换为 XML 字符串,使用 STUFF 函数将逗号分隔符插入每个值之间,并移除第一个逗号分隔符。

注意:在使用 CAST 函数将值转换为字符串之前,应该确保这些值的数据类型是可转换为字符串的。如果值的数据类型是数字类型,可以使用 CONVERT 函数将其转换为字符串类型。

  •