आपने टिप्पणी अनुभाग में जो कहा है, उसके आधार पर, मुझे लगता है कि आपको कोड का एक टुकड़ा बदलने की जरूरत है...
- मैं चाहता हूं कि उस कार्ड में
field14
नहीं होना चाहिए'Test card'
. के रूप में
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>पी>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
यह जांचने के लिए एक तर्क तालिका बनाएं कि क्या आप वाकई AND
चाहते हैं या यदि आप OR
want चाहते हैं
field14 | (field14 <> 'Test Card') | (t1.field14 is null) | A OR B | A AND B
--------------------------------------------------------------------------------
'Test Card' | FALSE | FALSE | FALSE | FALSE
NULL | NULL | TRUE | TRUE | FALSE
'Any Card' | TRUE | FALSE | TRUE | FALSE
संपादित करें टिप्पणी करने के लिए फ़ॉलो अप करें
OR
का उपयोग करना उपरोक्त कोड में TRUE
उत्पन्न नहीं हो सकता है जब Field14
'Test card'
. है . दोनों परीक्षणों से FALSE
मिलता है और इसलिए परिणाम FALSE
. होना चाहिए ।
आपको चीजों को चरणों में तोड़ने की जरूरत है। डिबगिंग एक समय में टुकड़ों का परीक्षण करके किया जाना चाहिए और धीरे-धीरे यह साबित करना चाहिए कि कौन सा काम अलग करने के लिए काम नहीं करता है। कभी भी सब कुछ एक साथ हल करने की कोशिश न करें, चीजों को व्यवस्थित तरीके से देखें।
यह परीक्षण चलाएँ...
SELECT
*,
CASE WHEN field14 <> 'Test Card' THEN 1 ELSE 0 END Test1,
CASE WHEN field14 IS NULL THEN 1 ELSE 0 END Test2,
CASE WHEN field14 <> 'Test Card' OR field14 IS NULL THEN 1 ELSE 0 END 1_OR_2,
CASE WHEN field14 <> 'Test Card' AND field14 IS NULL THEN 1 ELSE 0 END 1_AND_2
FROM
tblCustomer