成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

問題描述:

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

有表tb, 如下:

以下為引用的內(nèi)容:

id;value

----- ------

1;;aa

1;;bb

2;;aaa

2;;bbb

2;;ccc

需要得到結(jié)果:

id;;values

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

1;;;aa,bb

2;;;aaa,bbb,ccc

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

創(chuàng)建處理函數(shù)

以下為引用的內(nèi)容:

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

-- 調(diào)用函數(shù)

SELECt id, values=dbo.f_str(id)

FROM tb

GROUP BY id

標(biāo)簽: Sql Server 數(shù)據(jù)庫