关于 IN 问题

jerrie_1 2007-08-25 02:32:14
declare @idlist varchar(2000)
set @idlist='k001,k002,k003'
select * from tb where id in (replace(''''+@idlist+'''',',',''','''))

表中有ID为K001,K002,K003的记录,但用上面的SELECT就是查不到,偶也知道是后面REPLACE的问题,把它作为一个整体来查询。有那位可以修改一下或更好的思路吗?
当然也不推荐用exec

说的太多啦,先谢谢
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yonghengdizhen 2007-08-27
  • 打赏
  • 举报
回复
归根到底是没有理解字符串和行集的区别
jerrie_1 2007-08-25
  • 打赏
  • 举报
回复
ok
paoluo 2007-08-25
  • 打赏
  • 举报
回复
--如果編碼是k001這樣固定四位的話
--可以
declare @idlist varchar(2000)
set @idlist='k001,k002,k003'
select * from tb where @idlist Like '%' + id + '%'

--或者
declare @idlist varchar(2000)
set @idlist='k001,k002,k003'
select * from tb where CharIndex(id, @idlist) > 0
paoluo 2007-08-25
  • 打赏
  • 举报
回复
可以使用like



declare @idlist varchar(2000)
set @idlist='k001,k002,k003'
select * from tb where ',' + @idlist + ',' Like '%,' + id + ',%'
fa_ge 2007-08-25
  • 打赏
  • 举报
回复
用patindex 也行
fa_ge 2007-08-25
  • 打赏
  • 举报
回复
declare @idlist varchar(2000)
set @idlist='k001,k002,k003'
select * from tb where charindex( ','+id+',' ,','+@idlist+',')>0

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧