首页 >数据库 >mysql教程 >如何将 SQL 查询结果连接成单个字符串?

如何将 SQL 查询结果连接成单个字符串?

Susan Sarandon
Susan Sarandon原创
2025-01-04 10:19:35480浏览

How to Concatenate SQL Query Results into a Single String?

将 SQL 查询结果连接成单个字符串

问题:

在 SQL 中,函数包含一个检索的查询AccountCodes 表中按排序排序的 CodeName 值列表。目标是将这些值连接成单个字符串并将结果存储在 CodeNameString 变量中。

解决方案:

使用 FOR XML PATH 和 STUFF ( SQL Server 2005 或更高版本):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = STUFF( (SELECT ',' + CodeName 
                             FROM dbo.AccountCodes 
                             ORDER BY Sort
                             FOR XML PATH('')), 
                            1, 1, '')

这个方法使用 FOR XML PATH 子句将 CodeName 值连接到 XML 字符串中。然后使用 STUFF 函数将生成的 XML 转换回字符串,并删除第一个字符(逗号)。

注意: 如果 CodeName 值包含,则此方法可能不起作用特定字符,例如 或 &。在这种情况下,建议采用替代解决方案,例如下面提出的解决方案:

替代解决方案(使用 DISTINCT 和 FOR XML RAW):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = DISTINCT(CodeName) 
WHERE 
   EXISTS (SELECT 1 FROM dbo.AccountCodes WHERE CodeName = @CodeNameString)
FOR XML RAW, ',')

此方法使用 FOR XML RAW 子句创建包含连接值(不包括重复值)的 XML 字符串。然后将该字符串分配给 CodeNameString 变量。

以上是如何将 SQL 查询结果连接成单个字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn