首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

IN和字符串结合使用的怪有关问题,

2012-02-12 
IN和字符串结合使用的怪问题,急!一个存储过程中需要将一个包含子查询结果的字符串嵌入IN中执行declare@sva

IN和字符串结合使用的怪问题,急!
一个存储过程中需要将一个包含子查询结果的字符串嵌入IN中执行

declare   @s   varchar(50)
set   @s   =   '888,889,890 '     --这里我直接赋值了,实际是从另一个查询语句得到的
select   *   from   EmpNow_State   where   id   in   (@s)
报错:
服务器:   消息   245,级别   16,状态   1,行   3
将   varchar   值   '888,889,890 '   转换为数据类型为   int   的列时发生语法错误。


[解决办法]
--用动态SQL,如下:

declare @s varchar(50),@s2 varchar(8000)
set @s = '888,889,890 ' --这里我直接赋值了,实际是从另一个查询语句得到的

set @s2= 'select * from EmpNow_State where id in ( ' + @s + ') '
exec (@s2)

热点排行