例如,要將下面的數據
以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語句實現出來,不使用函數和存儲過程。