如何在Dynamic Query SQL中获取逗号分隔值

时间:2015-03-12 12:15:19

标签: sql-server-2008

我尝试这个并且它给出了错误"一个为变量赋值的SELECT语句不能与数据检索操作结合。" 我希望在此动态查询中获得逗号分隔值。 说应该给我玩Black Toy1,toy2,toy3,toy4

SELECT  @SQLQuery= '                          
  SELECT                      
          , Colors
          , (STUFF((SELECT ','+ st.Name  
    FROM Toys st 
          WHERE st.ToyID= Test.ColorID FOR XML PATH('')), 1, 1, '')) AS ToyName 

 FROM (

1 个答案:

答案 0 :(得分:0)

尝试:

DECLARE @SQLQuery NVARCHAR(MAX)
SELECT  @SQLQuery= '                          
declare @t table(Name nvarchar(20))
insert into @t values(''Peter''), (''Mike'')


SELECT STUFF((SELECT '','' + CONVERT(NVARCHAR(MAX), Name)
    FROM @t
    FOR XML PATH(''''), TYPE).value(''.[1]'', ''nvarchar(max)''), 1, 1, '''')'

EXEC ( @SQLQuery )

输出:

Peter,Mike