以下に示すように、ストアドプロシージャにクエリがあります
select empid
from tblname
where place = @place
and category = @category
これと同じ手順を使用して、place ='calicut'(カテゴリは任意)のすべての結果を取得したいと思います。これを行うことにより、query
選択したカテゴリが私ので「すべて」である場合に、別々に書くことを避けることができますdropdownlist
。
以下に示すように、ストアドプロシージャにクエリがあります
select empid
from tblname
where place = @place
and category = @category
これと同じ手順を使用して、place ='calicut'(カテゴリは任意)のすべての結果を取得したいと思います。これを行うことにより、query
選択したカテゴリが私ので「すべて」である場合に、別々に書くことを避けることができますdropdownlist
。
SELECT empid
FROM tblname
WHERE place = @place
AND (category = @category OR @category = 'all');
NULLをチェックできるはずです。これは、デフォルトの「すべて」の値が選択されているときに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)
もう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