组合来自多个 SQL Server 行的文本数据:综合指南
许多 SQL Server 用户需要将多行文本数据组合成单个字符串。这对于报告生成、数据合并和基于字符串的计算非常有用。
想象一张包含姓名列表的表格:
<code>Peter Paul Mary</code>
目标是创建一个以逗号分隔的字符串:Peter, Paul, Mary
方法 1:对于 SQL Server 2017 及更高版本 (STRING_AGG)
SQL Server 2017 和 Azure SQL 数据库提供了高效的STRING_AGG
功能:
<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames FROM TableName;</code>
方法 2:XML 解析(适用于较旧的 SQL Server 版本)
对于早期的 SQL Server 版本,XML 解析提供了解决方案:
<code class="language-sql">SELECT LEFT( ( SELECT Name + ',' AS [text()] FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)'), LEN(( SELECT Name + ',' AS [text()] FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)')) - 1 ) AS ConcatenatedNames FROM TableName;</code>
方法3:使用STUFF函数
STUFF
函数提供了另一种方法:
<code class="language-sql">SELECT STUFF( ( SELECT ',' + Name FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)'), 1, 1, '' ) AS ConcatenatedNames FROM TableName;</code>
这些方法可以有效地连接 SQL Server 中多行的文本数据,从而简化数据操作和聚合。 选择适合您的 SQL Server 版本的方法。
以上是如何在 SQL Server 中连接多行文本数据?的详细内容。更多信息请关注PHP中文网其他相关文章!