0
重複代碼的下面是表和數據反正避免了的if-else分支
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分支
1 = 1在這裏似乎沒有必要。使用這個 –
的任何特殊原因我是出於習慣做到的,以便在設計我的查詢時更容易地更改過濾器的位置。這是完全可選的,並不影響任何東西來保持它的出入(除了我的理智)。 –