读书人

将 varchar 值转换为数据类型为 int 的

发布时间: 2012-01-12 22:11:58 作者: rapoo

将 varchar 值转换为数据类型为 int 的列时发生语法错误?
我的语句如下:
declare @id int --传过来的文章的ID号
Set @id=1

DECLARE @TEXT VARCHAR(100) --发文单位字符串
Set @text= ' '

select @text=@text+ ' '+articledepart from law_articledepart where ID IN(select articledepart from law_context where id=@id)
print @text

/*说明:在law_context表中有一个articledepart字段,它里边存放的是发这篇文章的单位,可以有多个,以 "1,2,3 "这样的形式存放.这里的 "1,2,3 "分别对应articledepart表中的ID号.*/
例如:
1> law_context表有一条记录
ID articledepart
1 1,2,3
2> articledepart表对应的是
ID articledepart
1 总经理室
2 办公室
3 技术部
我想得到的是@TEXT= 总经理室 办公室 技术部
用来直接输出显示!
但是现在用我写的语句,出错了,
提示: "将 varchar 值 '48,1 ' 转换为数据类型为 int 的列时发生语法错误 "
不知道要如何写!请大家指点一下!


[解决办法]
select @text=@text+ ' '+articledepart from law_articledepart where cast(ID as varchar) IN(select articledepart from law_context where id=@id)
print @text
[解决办法]
--try
select @text=@text+ ' '+articledepart from law_articledepart
where charindex(rtrim(ID), (select top 1 articledepart from law_context where id=@id))> 0

[解决办法]
用Exec写写看吧

读书人网 >SQL Server

热点推荐