日期:2014-05-17  浏览次数:20571 次

SQL select in 潜逃查询
select * from A where ID In 
( SELECT IDs  FROM B where XXX )

( SELECT IDs  FROM B where XXX )查询结果为 666,667 是字符串

想要外层查询ID在第一个范围内该怎么做呢??

直接写报错

消息 245,级别 16,状态 1,第 1 行
在将 nvarchar 值 '666,667' 转换成数据类型 int 时失败。



select?in?

------解决方案--------------------
引用:
只能传在where之后的语句,头疼啊


是这样的吗:


select a.* 
from a 
where charindex(',' + cast(a.id as varchar) + ',' , 
               ',' + (select ids from b xxx) + ',') > 0