日期:2014-05-16  浏览次数:20638 次

如何把过滤的条件写在参数里
如何把过滤的条件写在参数里

比如简化后的SQL:
select * from myTable where Status = 'A' or Status='B' or Status='C';

如何写成store proc,其中,A, B, C是条件

使调用时:
exec spMyProc 'A or B or C'
-- 或者 exec spMyProc 'A, B, C'
(A, B, C个数不定,但都是 or)

alter proc spMyProc
   @filters VARCHAR(50);
as
begin
select * from myTable where Status = @filters
end;

------解决方案--------------------
用in可以吗
select * from myTable where Status in ('A' ,'B' ,'C');


------解决方案--------------------
最简单的是用IN拼接 不然的话就要用UNION ALL拼接了。