读书人

转换为数据类型为 int 的列时发生语法

发布时间: 2012-04-12 15:46:35 作者: rapoo

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

读书人网 >SQL Server

热点推荐