请问,我在sqlserver中想用in判断范围进行批量删除,但只能输入一个字符串参数,如何拆字符串然后动态拼in()里面的内容呢?字符串内容可能会是 'a','b','c','d' 这种类型的也可能是 1,2,3,4,5 这种类型的,我现在想不出传进去的参数如何拆分在组装能编程in()能正确识别的结构
2 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
字符串应该类似'a,b,c,d' 或者'1,2,3,4'这样的吧?
拼字符串 set @str='select * from tb where 字段 in ('+char(39)+replace('字符串',',',char(39)+','+char(39)))+char(39)+')'
exec(@str)
就是把'a,b,c,d' 替换成 ('a','b','c','d')
绝地无双
TA贡献1946条经验 获得超4个赞
如果 'a','b','c','d' 是别的表中的数据,那么类型只有一种,
select * from 表A where 列名A in (select 列名A from 表B)
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消