我在存储过程中有一个查询,如下所示
select empid
from tblname
where place = @place
and category = @category
我想使用相同的程序来获得place ='calicut'的所有结果(类别可以是任何结果)。通过这样做,如果选择的类别在我的query
中为“全部”,我可以避免单独dropdownlist
。
答案 0 :(得分:2)
SELECT empid
FROM tblname
WHERE place = @place
AND (category = @category OR @category = 'all');
答案 1 :(得分:1)
您应该能够检查NULL - 这假设您在选择默认的“all”值时传递NULL。如果没有,请将NULL替换为传递给SP的全部或任何值:
select empid
from tblname
where place=@place and
(@category IS NULL OR category=@category)
这会检查@category参数 - 如果它为NULL,则它会选择任何类别。否则,它会搜索该特定类别。
如果您只关心place ='calicut',请改用:
select empid
from tblname
where place='calicut' and
(@category IS NULL OR category=@category)
答案 2 :(得分: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