2013-10-14 3 views
6

क्या निम्न स्क्रिप्ट लिखने का कोई तरीका है ताकि उत्पाद आईडी वैरिएबल शून्य हो तो यह सभी उत्पादों को वापस कर दे? और एक विशिष्ट उत्पाद वापस करें जब उत्पाद शून्य नहीं है। क्या मैं अब तक है:एसक्यूएल सभी का चयन करें यदि पैरामीटर शून्य है और बाकी specfic आइटम वापस करें

DECLARE @productID INT = NULL 

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

उत्तर

23

उपयोग मामले बयान:

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

वाह फ्लॉप पता 2012 को यह में IIF समारोह था, मैं अपने कंपनी 2012 –

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

क्यों:

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

या IIF() फ़ंक्शन आप SQL Server 2012 उपयोग कर रहे हैं न केवल:

DECLARE @productID INT = NULL 

SELECT ProductID, ProductName,ProductDesc 
FROM product 
WHERE ProductID = @productID 
OR  @productID IS NULL; 
यहाँ

शून्य वाले demo in SQLFiddle और @productID

+0

+1 के लिए upgarde करने के लिए बस नहीं कर सकते इंतजार केस स्टेटमेंट से बचने के लिए – Oliver

5

के लिए एक मूल्य की कोशिश करो इस

DECLARE @productID INT = NULL 

SELECT 
    ProductID, 
    ProductName, 
    ProductDesc 
FROM 
    product 
WHERE 
    ProductID = isnull(@productID,ProductID) 
संबंधित मुद्दे