2013-10-14 30 views

回答

23

使用case語句:

SELECT ProductID, ProductName,ProductDesc 
FROM product 
WHERE ProductID = CASE WHEN @productID IS NULL THEN ProductID ELSE @productID END 

或者IIF()函數,如果你使用SQL Server 2012:

SELECT ProductID, ProductName,ProductDesc 
FROM product 
WHERE ProductID =IIF(@productID IS NULL, ProductID, @productID) 
+0

哇不知道2012年它有IIF函數,我真的不能等我公司upgarde到2012 –

0
SELECT 
    ProductID, 
    ProductName, 
    ProductDesc 
FROM 
    product 
WHERE 
    ProductID = CASE WHEN @productID IS NULL THEN ProductID ELSE @productID END 
10

爲什麼不只是:

DECLARE @productID INT = NULL 

SELECT ProductID, ProductName,ProductDesc 
FROM product 
WHERE ProductID = @productID 
OR  @productID IS NULL; 

這裏,demo in SQLFiddle用NULL和@ProductID

+0

+1爲了避免案件陳述 – Oliver

5

值試試這個

DECLARE @productID INT = NULL 

SELECT 
    ProductID, 
    ProductName, 
    ProductDesc 
FROM 
    product 
WHERE 
    ProductID = isnull(@productID,ProductID) 
相關問題