如何使用组中的SQL Server中的串联字符串?
Jan 25, 2025 am 02:28 AM在 SQL Server 中使用 GROUP BY 连接字符串
在 SQL Server 中处理字符串连接时,GROUP BY
子句是一个强大的工具。通过基于公共字段对行进行分组,您可以有效地将相关的字符串组合成单个连接结果。
让我们来看一个场景:
您有一个表,包含 ID、Name 和 Value 列。您希望将所有具有相同 ID 的行连接到单行中,该行包含名为 Column 的列,其中包含格式为 Name:Value 的连接字符串。
为此,您可以结合使用 FOR XML
和 PATH
与 GROUP BY
子句:
CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT) INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4) INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8) INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9) SELECT [ID], STUFF(( SELECT ', ' + [Name] + ':' + CAST([Value] AS VARCHAR(MAX)) FROM #YourTable WHERE (ID = Results.ID) FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS NameValues FROM #YourTable Results GROUP BY ID DROP TABLE #YourTable
登录后复制
在这个查询中:
- 子查询使用
FOR XML PATH('')
创建 Name 和 Value 列的 XML 表示形式,用逗号分隔。 PATH('')
子句指定连接的字符串应被视为单个值。STUFF
函数删除连接字符串开头的逗号和空格。- 使用
GROUP BY
子句按 ID 分组结果。
结果,您将获得以下输出:
<code>ID NameValues 1 A:4, B:8 2 C:9</code>
登录后复制
以上是如何使用组中的SQL Server中的串联字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)
