怎么写这样一个存储过程?

maysoftchina 2011-02-07 05:14:39
一般我们写Where条件都是如下:
select * from table1 where NO=@NO

但是我的查询条件是按照如下格式传入:
A1,A2,A3这样不等数目的条件,中间用逗号分开,那么语句就要写成:select * from table1 where NO=A1 or NO =A2 or NO=A3这样的才可以得到结果,如果是存储过程应该怎么写?需要注意的是我的条件数是不指定的,都是逗号分开
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2011-02-07
  • 打赏
  • 举报
回复
如果传进来的数据是用逗号隔开的一个串,则:
select * from table1 where charindex(','+rtrim(NO)+',',','+@NO+',')>0
飘零一叶 2011-02-07
  • 打赏
  • 举报
回复
select * from table1 where charindex(','+rtrim(NO)+,'',','+@NO+',')>0
feixianxxx 2011-02-07
  • 打赏
  • 举报
回复

select * from table1 where charindex(rtrim(NO),@NO)>0
快溜 2011-02-07
  • 打赏
  • 举报
回复

where no in (@no)
--OR
WHERE charindex(no+',',@no)>0
-晴天 2011-02-07
  • 打赏
  • 举报
回复
可以用:
where NO in(@A1,@A2,@A3)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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