2013-03-25 79 views
0

我有一个存储过程中的查询如下图所示如何为包括全部条件的多个条件进行选择查询?

select empid 
from tblname 
where place = @place 
and category = @category 

我想用这个相同的步骤来获得所有结果的地方=“卡利卡特”(类别可以是任意)。通过这样做,我能避免我dropdownlist编写单独的query如果选择的类别是“全部”。

+1

@Praveen Nambiar感谢您的编辑。我真的是我的电话奋力编辑 – 2013-03-25 15:16:16

+0

与手机好工作......我必须说:) – 2013-03-25 15:18:12

回答

1

你应该能够检查NULL - 这是假设选择了默认的“所有”值当你传递NULL。如果没有,用全部或任何值要传递给SP替换NULL:

select empid 
from tblname 
where [email protected] and 
    (@category IS NULL OR [email protected]) 

此检查@Category参数 - 如果它是NULL,那么它选择任何类别。否则它会搜索该特定类别。

如果你只关心哪里的地方=“卡利卡特”,然后用这个来代替:

select empid 
from tblname 
where place='calicut' and 
    (@category IS NULL OR [email protected]) 
2
SELECT empid 
FROM tblname 
WHERE place = @place 
AND (category = @category OR @category = 'all'); 
1

一个,你可以做更多的事情是初始化变量@category而写的stored procedure

ALTER PROCEDURE yourProcName 
    @place VARCHAR(100), 
    @category VARCHAR(50) = '' 
AS 
BEGIN 

    select empid 
    from tblname 
    where place = @place 
    and 
    (@category = '' OR category = @category) 

END