2014-02-28 35 views
0

我将选择语句结果插入到临时表中。我希望它的一列值逗号分开,所以我尝试了下面,但它不工作。临时表中的逗号分隔列值

SELECT @IdList = COALESCE(@IdList+',' ,'') + s.Id 
     FROM (SELECT Id FROM #_TempStudentTable) as s 

我检查了#_TempStudentTable中的数据,它有数据。但是当我尝试显示IdList时,它返回NULL。 帮帮我。我不知道有什么问题。

+0

初始化得到它不变量'@ IdList'到' '''。 “NULL”值只是生成更多的“NULL”值。 –

+0

@GordonLinoff,我试过你solutiomn,但它不工作。 – Dhwani

回答

2

试试这个:

DECLARE @IdList VARCHAR(MAX) 

SELECT @IdList = COALESCE(@IdList + ',','') + CAST(Id AS VARCHAR(100)) 
FROM #_TempStudentTable 

SELECT @IdList 

您还可以使用XML像下面

SELECT STUFF((SELECT ',' + CAST(Id AS VARCHAR(10)) 
      FROM #_TempStudentTable 
      FOR XML PATH ('')) 
      , 1, 1, '') 
+0

它已经是varchar字段。第一个解决方案不起作用。 – Dhwani

+0

第一个解决方案的问题是什么?它对我的工作很好 –

+0

我不知道第一个问题。它适用于数字字段,但varchar字段失败。 – Dhwani