我有一个小问题。我收到了这个错误,如果有人能帮助我,我将不胜感激!我所要做的就是以逗号分隔的列表。
SET NOCOUNT ON;
DECLARE @TypeID Varchar(250)
SELECT
@TypeID = COALESCE(@TypeID +',' ,'') + TypeID
FROM
Related
RETURN @TypeID
将varchar值'8'转换为数据类型int。
时转换失败
有人知道怎么修理吗?我试过CONVERT(VARCHAR, @TypeID)
,但这似乎没有任何区别!
答案 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,'')