組合來自多個 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中文網其他相關文章!