当前位置: 代码迷 >> Sql Server >> IN和字符串结合使用的怪有关问题,
  详细解决方案

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

热度:11   发布时间:2016-04-27 16:38:59.0
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)

  相关解决方案