sql - Case statement in where clause not working -
मित्र ..
मैं संग्रहीत कार्यविधि का उपयोग कर रहा हूं जिसमें एक वैकल्पिक पैरामीटर @ बराबर और डिफ़ॉल्ट मान नल है यदि उपयोगकर्ता पैरामीटर एसक्यूएल क्वेरी को कुछ मान देता है तो उसे बदलना होगा। मैं कहाँ क्लॉज में केस का उपयोग करने की कोशिश कर रहा हूं लेकिन इसकी कुछ त्रुटि दिखाई दे रही है उचित सिंटैक्स या बेहतर तर्क के साथ मेरी सहायता करें मेरी आवश्यकता तब होती है जब उपयोगकर्ता @ समान के लिए मूल्य नहीं देते हैं, तो फ़िरस्क्रीन साल & lt; @yr - अन्य संशोधित प्रश्न < / P> त्रुटि बयान संदेश 102, स्तर 15, राज्य 1, प्रक्रिया spDisplayBankConolidate, रेखा 14 '& lt;' के पास गलत वाक्यविन्यास आपकी स्थिति में आपकी दो त्रुटियां हैं: स्थिति इस तरह दिखनी चाहिए: N
वित्तीय वर्ष और एलटी; = @ यार <प्री> बैंककोड का चयन करें, (एसएम (डेबिट) - एसओएम (क्रेडिट)) एटी से वी डब्ल्यु डेलीडेटा जहां पीएनजी = @ पैरिश नाम और फिस्कल साल & lt; (केस जब @ इक्वल आईएस नेल है, तो @ ईआरएसईई = '+ @ yr) और बैंककोड & lt; & gt; बैंक' बैंक 'द्वारा' कैश 'समूह
बैंककोड का चयन करें, (एसएम (डेबिट) - एसओएम (क्रेडिट)) एटी से वी डब्ल्यु डेलीडेटा, जहां पीएनजी = @ पैरिश नाम और (जब मामला बराबर है तो अब फिसल ईयर और एलटी; @ एआर ईडीडी) और बैंककोड & lt; & gt; बैंकिंग के द्वारा 'कैश' समूह
END की कमी है , और
case अभिव्यक्ति के अंदर एक अलग ऑपरेटर नहीं दे सकते।
जहां पन्नें = @ पैरिश नाम और ((असमान है नाल और वित्तीय वर्ष और लेफ्टिनेंट @ आईआर) या (समानांतर नहीं है और फसल वर्ष के लिए & lt; = @yr)) और बैंककोड & lt; & gt; 'कैश'
या अभिव्यक्ति के दो हिस्सों में
@equal IS NULL और
@equal IS NOT NULL शर्तों को छोड़ दें। चूंकि दोनों पारस्परिक रूप से अनन्य हैं, इसलिए
या के एक ही पक्ष का फैसला होगा कि क्वेरी परिणाम में कौन से पंक्तियां शामिल होंगी।
Comments
Post a Comment