这是表格和数据
CREATE TABLE #Customers
(
ID INT NOT NULL,
ProductID INT NOT NULL,
OrderID INT NULL
)
INSERT INTO #Customers VALUES (1,10,1)
INSERT INTO #Customers VALUES (2,10,NULL)
INSERT INTO #Customers VALUES (3,10,5)
INSERT INTO #Customers VALUES (4,20,NULL)
INSERT INTO #Customers VALUES (5,20,NULL)
INSERT INTO #Customers VALUES (6,20,22)
GO
我有一个存储过程,其中结果的决定基于参数@OrderID。如果@OrderID 不为空,则返回匹配此参数的行,否则返回所有行。如下所示。
DECLARE @OrderID INT
SET @OrderID = NULL
IF @OrderID IS NULL
BEGIN
SELECT * FROM #Customers
END
ELSE
BEGIN
SELECT * FROM #Customers
WHERE OrderID = @OrderID
END
我只是想知道是否有写一个可以涵盖这两种情况的 WHERE 子句。这样我可以避免 IF-ELSE 分支中的代码重复