我在 MS SQL 2008 中有一个表,其中有一列名为Status
. 它可以有“A”或“I”或“P”作为值。@Status
我有一个作为参数的存储过程。如果参数是null
,我需要检索状态为 A 或 I 或 P 的所有记录(基本上忽略 Status 字段)。如果参数只有 A(例如),我只需要获取状态为 A 的记录。如何在没有 SELECT 语句的情况下完成此操作IF.. ELSE
?
-- This is just a snippet of a larger query.
-- Can the following be done without IF ELSE?
IF @Status = NULL
BEGIN
SELECT * FROM Person
END
ELSE SELECT * FROM Person WHERE Status = @Status
编辑:我的目标不是重复相同的逻辑两次。select 语句有一堆连接和东西,我不想在 else 条件下再次重复它。
编辑#2:我的错-我再次检查了表格,它确实包含带有NULL
状态的记录,这是我不想要的。这是桌子——
Id Status
--------------
1 A
2 I
3 P
4 NULL
如果@Status
是“-1”(我将参数默认为-1),我想要1, 2, 3
记录。如何编写查询?