SQL逗号分隔问题

时间:2011-09-11 20:02:35

标签: sql-server tsql

我有一个小问题。我收到了这个错误,如果有人能帮助我,我将不胜感激!我所要做的就是以逗号分隔的列表。

SET NOCOUNT ON;

DECLARE @TypeID Varchar(250)

SELECT
    @TypeID = COALESCE(@TypeID +',' ,'') + TypeID 
FROM
    Related

RETURN @TypeID 
  

将varchar值'8'转换为数据类型int。

时转换失败

有人知道怎么修理吗?我试过CONVERT(VARCHAR, @TypeID),但这似乎没有任何区别!

4 个答案:

答案 0 :(得分:4)

相关表中的字段TypeId是整数吗?您需要将数据库字段强制转换为varchar才能使代码正常工作

Select @typeId = coalesce(@typeId+',','') + cast(typeId as varchar(20))
from related

答案 1 :(得分:2)

其他答案是正确的,您需要CAST int varchar,但另一个问题是您正在使用RETURN @TypeID

return statement需要一个整数(通常用于表示数据的成功/失败),不能与字符串一起使用。您需要使用OUTPUT参数或SELECT语句。

答案 2 :(得分:1)

Cast TypeId作为varchar:

DECLARE @TypeID Varchar(250)

SELECT
    @TypeID = COALESCE(@TypeID + ',' , '') + CAST(TypeID As varchar(20))
FROM
    Related

RETURN @TypeID 

另一种方法是使用字符串concactination:

Declare @TypeId varchar(250)
Select @TypeId = ''

Select @TypeId = @TypeId + ', ' + CAST(TypeID As varchar(20))
From Related

答案 3 :(得分:0)

请尝试以下操作:

DECLARE @TypeID Varchar(250)

SET @TypeID =''

SELECT @TypeID = COALESCE(@TypeID +',','')+ CAST(TypeID As varchar(20))FROM Related

SELECT STUFF(@TypeID,1,1,'')