转换为数据类型为 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