将mssql查询结果拼接位一个字段

如果在 MSSQL 查询中有三条结果,并且想将它们拼接成一个字段,可以使用 FOR XML PATH('') 来实现。

  • 在 SQL Server 中,使用 FOR XML PATH('') 可以将查询结果转换为 XML 格式,并通过指定空字符串作为参数,实现将多行结果拼接成单个字符串的效果。

应用场景:

将明细表某字段赋值给主表某字段。

  • 当然也可以使用js实现。此处想偷懒。。。。

示例:

假设查询结果为:

列名
A
B
C

可以使用以下查询来将这三条结果拼接成一个字段:

SELECT STUFF((SELECT ',' + 列名
              FROM 表名
              FOR XML PATH('')), 1, 1, '') AS 拼接字段名;

在这个查询中:

  • 表名 是你要查询的表名。
  • 列名 是你要拼接的列名。
  • 拼接字段名 是生成的拼接字段的别名。

再举例

SELECT
	STUFF(
		(
		SELECT
			',' + uf_nscgddxz_dt1.item 
		FROM
			uf_nscgddxz
			INNER JOIN uf_nscgddxz_dt1 ON uf_nscgddxz.id= uf_nscgddxz_dt1.mainid 
		WHERE
			internalID = 149636 FOR XML PATH ( '' ) 
		),
		1,
		1,
		'' 
	) AS ConcatenatedColumn;

 

THE END
分享
二维码
打赏
海报
将mssql查询结果拼接位一个字段
如果在 MSSQL 查询中有三条结果,并且想将它们拼接成一个字段,可以使用 FOR XML PATH('') 来实现。 在 SQL Server 中,使用 FOR XML PATH('') 可以将查询结……
<<上一篇
下一篇>>