有没有办法编写以下脚本,以便在ProductID变量为null时返回所有产品?当产品不为空时返回特定产品.到目前为止我所拥有的:
DECLARE @productID INT = NULL
SELECT
ProductID,
ProductName,
ProductDesc
FROM
product
WHERE
ProductID = @productID
Run Code Online (Sandbox Code Playgroud)
Har*_*der 33
用例陈述:
SELECT ProductID, ProductName,ProductDesc
FROM product
WHERE ProductID = CASE WHEN @productID IS NULL THEN ProductID ELSE @productID END
Run Code Online (Sandbox Code Playgroud)
或者IIF()函数,如果您使用的是SQL Server 2012:
SELECT ProductID, ProductName,ProductDesc
FROM product
WHERE ProductID =IIF(@productID IS NULL, ProductID, @productID )
Run Code Online (Sandbox Code Playgroud)
muc*_*cio 13
为什么不呢:
DECLARE @productID INT = NULL
SELECT ProductID, ProductName,ProductDesc
FROM product
WHERE ProductID = @productID
OR @productID IS NULL;
Run Code Online (Sandbox Code Playgroud)
这里是SQLFiddle的一个演示,带有NULL和@productID的值
小智 6
试试这个
DECLARE @productID INT = NULL
SELECT
ProductID,
ProductName,
ProductDesc
FROM
product
WHERE
ProductID = isnull(@productID,ProductID)
Run Code Online (Sandbox Code Playgroud)