您的位置:首頁/技術文章
文章詳情頁

解析SQL Server 2005溢用之:合并列值

瀏覽:32日期:2023-11-07 08:14:53

很多人可能發現,無論是在sql 2000, 還是在 sql 2005 中,都沒有提供字符串的聚合函數, 所以, 當我們在處理下列要求時,會比較麻煩, 但在 SQL Server 2005中, 這種情況得到了改善, 我們可以輕松地完成這項處理。

問題描述:

無論是在sql 2000, 還是在 sql 2005 中,都沒有提供字符串的聚合函數, 所以, 當我們在處理下列要求時,會比較麻煩:

有表tb, 如下:

以下為引用的內容:

id;value

----- ------

1;;aa

1;;bb

2;;aaa

2;;bbb

2;;ccc

需要得到結果:

id;;values

------ -----------

1;;;aa,bb

2;;;aaa,bbb,ccc

即, group by id, 求 value 的和(字符串相加)1. 舊的解決方法

創建處理函數

以下為引用的內容:

CREATE FUNCTION dbo.f_str(@id int)

RETURNS varchar(8000)

AS

BEGIN

DECLARE @r varchar(8000)

SET @r = ''

SELECT @r = @r + ',' + value

FROM tb

WHERE id=@id

RETURN STUFF(@r, 1, 1, '')

END

GO

-- 調用函數

SELECt id, values=dbo.f_str(id)

FROM tb

GROUP BY id

標簽: Sql Server 數據庫
国产综合久久一区二区三区