20

ProductID 変数が null の場合にすべての製品を返すように次のスクリプトを作成する方法はありますか? 商品が null でない場合、特定の商品を返します。私がこれまでに持っているもの:

DECLARE @productID INT = NULL

SELECT
    ProductID,
    ProductName,
    ProductDesc 
FROM
    product 
WHERE
    ProductID = @productID
4

6 に答える 6

42

ユース ケース ステートメント:

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

または、SQL Server 2012 を使用している場合は IIF() 関数:

SELECT ProductID, ProductName,ProductDesc 
FROM product 
WHERE ProductID =IIF(@productID IS NULL, ProductID, @productID )
于 2013-10-14T10:17:01.237 に答える
8

これを試して

DECLARE @productID INT = NULL

SELECT 
    ProductID,
    ProductName,
    ProductDesc 
FROM
    product 
WHERE 
    ProductID = isnull(@productID,ProductID)
于 2016-06-01T08:33:50.417 に答える
0
SELECT
    ProductID,
    ProductName,
    ProductDesc 
FROM
    product 
WHERE
    ProductID = CASE WHEN @productID IS NULL THEN ProductID ELSE @productID END
于 2013-10-14T10:17:59.383 に答える