Sql Server實現多行數據按分組用逗號分隔成一行數據


例如,要將下面的數據

以GROUP_ID進行分組,一組一行,一組中的多個PRODUCT_ID用逗號分隔,select 出來成如下結果:

 

在Sql Server中,我目前想到的一種方法是寫一個函數,如下:

CREATE FUNCTION [dbo].[FN_GetProductsByGroup]
(
    @GroupId int
)
RETURNS [nvarchar](4000)
AS
BEGIN
    DECLARE @ReturnValue [nvarchar](1000)
    SET @ReturnValue = ''
    SELECT @ReturnValue=@ReturnValue + RTRIM(LTRIM(PRODUCT_ID))  + ','
         FROM T_DEMO
        WHERE GROUP_ID = @GroupId
    SET @ReturnValue = substring(@ReturnValue,1,len(@ReturnValue)-1)
    RETURN @ReturnValue
END

然后查詢語句這樣寫:

SELECT GROUP_ID, [dbo].[FN_GetProductsByGroup](GROUP_ID) As PRODUCTS
FROM T_DEMO
GROUP BY GROUP_ID

查詢結果如下圖所示:

在Sql Server中,不知道有沒有哪位大俠能否只用純SELECT語句實現出來,不使用函數和存儲過程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM