新しいスレッドを作成してお詫びします。前のスレッドで質問を正しく組み立てることができませんでした。
SQLServer2008に次のようなテーブルがあります-
Id Status
--------------
1 A
2 I
3 NULL
パラメータとして受け取るストアドプロシージャがあり@Status
ます。
If the @Status is "-1", I need to retrieve records 1, 2.
If the @Status is "A", I need to retrieve only record 1.
If the @Status is "I", I need to retrieve only record 2.
SELECT
を使用せずに、1つのステートメントでレコードを取得できるようにしたいIF ELSE
。SELECTステートメントには多くの結合などがあり、ELSE条件で同じことを繰り返したくありません。
私は以下を試しましたが、間違ったデータを取得します-
SELECT * FROM Person WHERE Status = @Status OR @Status IS NOT NULL
select * from Person
where (@Status is not null and Status = @Status) or
(@Status is null and Status in ('A', 'P'))