转换为数据类型为 int 的列时发生语法错误,怎样解决?
表bevy
bevy_id bevy_man bevy_sort(int)
1 小华 2
2 小朱 3
3 小水 2
... ... ...
如何output 为字符串: "2,3,2 "
存储过程如下:
declare @a varchar(100)
set @a= ' '
select @a=@a+isnull(bevy_sort, ' ')+ ', ' from bevy
select left(@a,len(@a)-1) as output
为什么出现:
将 varchar 值 ', ' 转换为数据类型为 int 的列时发生语法错误
------解决方案--------------------把 bevy_sort 转为字符串类型再与 ', '相加:
declare @a varchar(100)
set @a= ' '
select @a=@a+isnull(rtrim(bevy_sort), ' ')+ ', ' from bevy
select left(@a,len(@a)-1) as output
------解决方案--------------------declare @a varchar(100)
set @a= ' '
select @a=@a+isnull(cast(bevy_sort as varchar), ' ')+ ', ' from bevy
select left(@a,len(@a)-1) as output
------解决方案--------------------bevy_sort先转成字符型吧
------解决方案----------------------如果想NULL显示为NULL:
--select @a=@a+isnull(bevy_sort, ' ')+ ', ' from bevy
select @a=@a+isnull(cast(bevy_sort as varchar), 'NULL ')+ ', ' from bevy