CountryID
がパラメータとして指定されていない限り、すべてCountry
行を返すSPを作成したいとします。ここで私はそれがうまくいくかもしれないと想像していますが、それはそれが好きではありません。条件付きWHERE文SQL Server
ALTER PROCEDURE [dbo].[usp_return_countries]
@CountryID AS INT = 0
AS
BEGIN
SELECT *
FROM Countries
WHERE Active = 1
IF @CountryID > 0 BEGIN
AND @CountryID = CountryID
END
END
P.S.ありがとう私は上記の条件に基づいてSELECT文全体を単に繰り返すよりも良い方法があると思った。単一WHERE
句で包むのに十分な簡単
ALTER PROCEDURE [dbo].[usp_return_countries]
@CountryID AS INT = 0 AS BEGIN
IF @CountryID > 0 BEGIN
SELECT *
FROM Countries
WHERE Active = 1
AND @CountryID = CountryID
END
ELSE BEGIN
SELECT *
FROM Countries
WHERE Active = 1
END
END
ああ、もちろん。私はこれを見ましたが、テーブルCountryIDに0と一致することを混乱させました。完璧、ありがとう – David
それはあなたのために働いてうれしい。 –