asp mssql select where id in() 求高手指点 20

现在有一个mssql表,里面有一个字段记录了多个id值,格式为1,2,3,4,5,...21...现在想通过whereidin(id组)的形式来循环读取所有当前用户id不... 现在有一个mssql表,里面有一个字段记录了多个id值,格式为 1,2,3,4,5,...21...
现在想通过where id in(id组)的形式来循环读取所有当前用户id不在这个字段中的记录。
当这个字段中只有一个 0 的时候,结果是正确的,但是当里面有多个id值的时候,提示转换为int时错误。
谁有解决办法,求赐教,感谢

sql=“select * from [table] where "&request.cookies("userid")&" not in (userlist) order by id desc"
展开
 我来答
badkano
2019-03-09 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885368
团长

向TA提问 私信TA
展开全部

创建表,数据:(要查t表在s的id列表中不存在的数据)

create table t
(id int)

create table s
(userlist varchar(100))

insert into t values (1)
insert into t values (3)
insert into s values ('1,2')

执行:

select * from t where id not in
(select
    SUBSTRING(userlist,number,CHARINDEX(',',userlist+',',number)-number) as userlist
from
    s,master..spt_values 
where
    number >=1 and number<=len(userlist)  
    and type='p' 
    and substring(','+userlist,number,1)=',')

结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式