あなたの質問は明確ではないので、私はあなたが達成したいと思うかもしれない2つの結果を見ます。
最初はにのみ依存しcountryID
ます。したがって、countryID
が-1の場合は、レコードを選択しないでください。
-1がないcountryId
場合は、この簡単な選択を使用できます。これは、の場合は@countryID = -1
(ANDのため)何も返さず、-1でない場合は、必要なレコードが返されるためです。
SELECT *
FROM dbo.bbmf
WHERE status=1
AND (countryId=@countryId)
(最初のソリューションに加えて、id = -1の国がある場合は、AND (countryId=@countryId)
Toを変更する必要がありますAND (countryId=@countryId AND @countryId <> -1)
)
2つ目は、の場合countryId = -1
、ステータスを確認するだけで、すべてのレコードをで取得する必要がある場合は、次のstatus = 1
ステートメントを使用する必要があります。
SELECT *
FROM dbo.bbmf
WHERE status=1
AND (countryId = -1
OR countryId = @countryId)