2011-10-28 15 views
16

रिटर्न कोई भी पंक्ति मैं एक का चयन करें बयानजांच करें कि किसी SQL चुनें बयान

SELECT  QBalance 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

मैं अगर उस वक्तव्य 0 पंक्तियों रिटर्न की जांच करना चाहते हैं। मैंने ISNULL और IFNULL का उपयोग करने की कोशिश की लेकिन ऐसा लगता है कि मुझे कुछ याद आ रहा है।

+1

नल द्वारा क्या आपका मतलब QBalance में कोई पंक्ति या वास्तविक 'शून्य' मान नहीं है? और यदि आप शून्य हो जाते हैं तो आप क्या करना चाहते हैं? –

+0

हाँ शून्य से मेरा मतलब है कि कोई पंक्ति नहीं – Islam

+0

भविष्य में आपकी सहायता के लिए, कोई भी पंक्ति शून्य से अलग नहीं है। (आप कोई पंक्ति को बदलने के लिए इस प्रश्न को संपादित करना चाहिए, और निर्दिष्ट करें कि आप ऐसा करना चाहते हैं।) –

उत्तर

1

इस प्रयास करें:

SELECT  ISNULL(QBalance, 'ReplaceValue') 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 
+0

बहुत ही सरल, बहुत अच्छा –

+6

@Jordan_Walters - हालांकि यह काम नहीं करता है। यदि कोई पंक्ति मौजूद नहीं है तो 'ISNULL' को लागू करने के लिए कोई मूल्य नहीं है। –

7
SELECT COUNT(*) 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

आप 0 के लिये, आप 0. :)

7

मिला इस एसक्यूएल सर्वर, @@ROWCOUNT करके देखें।

34

यह पता लगाने के लिए कि कोई मिलान पंक्ति मौजूद नहीं है, आप NOT EXISTS का उपयोग कर सकते हैं। कौन सा मिलान करने वाले सभी पंक्तियों

गिनती की तुलना में अधिक कुशल हो सकता है
IF NOT EXISTS(SELECT * FROM ...) 
BEGIN 
PRINT 'No matching row exists' 
END 
0

भी एक बाहरी IsNull जांच का उपयोग कर सकते हैं?

SELECT ISNULL((
SELECT QBalance 
FROM dbo.CustomerBalance 
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)), 0) 
0

आप @@ ROWCOUNT उपयोग कर सकते हैं। उदा

SELECT  QBalance 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

--This will return no of rows returned by above statement. 
SELECT @@ROWCOUNT 

यदि पहला कथन किसी भी पंक्ति को वापस नहीं करेगा तो आपको 0 मिल जाएगा। यदि आप पहले कथन के बाद जांचने के लिए कथन का उपयोग भी कर सकते हैं। जैसे

IF @@ROWCOUNT <> 0 
    PRINT 'Select statement is returning some rows' 
ELSE 
    PRINT 'No rows returned' 
संबंधित मुद्दे