在 SQL Server 中連接群組
要在 SQL Server 2005 中連接群組內的值,請考慮使用使用者定義的聚合函數。
解:
建立使用者定義的聚合函數 (UDAF):
<code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @result VARCHAR(MAX) = '', @delim VARCHAR(2) = ''; WHILE @str IS NOT NULL BEGIN SET @result = @result + @delim + @str; SET @delim = ','; SET @str = NEXT VALUE; END; RETURN @result; END;</code>
在查詢中使用 UDAF:
<code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues FROM YourTable GROUP BY Id;</code>
結果:
Id | ConcatenatedValues |
---|---|
1 | 'A,B' |
2 | 'C' |
請注意,此解決方案使用了一個 WHILE
循環來迭代輸入值,並使用逗號作為分隔符號將它們連接起來。 這與原始範例中的 FOR
迴圈有所不同,但實作了相同的功能,並且在 SQL Server 中更常見。 NEXT VALUE
用來取得聚合函數的下一個輸入值。 YourTable
應該替換為您實際的表名。
以上是如何在 SQL Server 中連接群組內的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!