2014-04-03 8 views
38

मुझे हाल ही में SQL सर्वर 2012 में आईआईएफ फ़ंक्शन की उपलब्धता के बारे में पता चला। मैं हमेशा अपने प्रश्नों में नेस्टेड केस का उपयोग करता हूं। मैं आईआईएफ कथन के सही उद्देश्य को जानना चाहता हूं और हमें क्वेरी में केस स्टेटमेंट पर आईआईएफ का उपयोग करना कब चाहिए। मैं ज्यादातर अपने प्रश्नों में नेस्टेड केस का उपयोग करता हूं।एसक्यूएल सर्वर आईआईएफ बनाम केस

सभी इनपुट के लिए धन्यवाद।

+3

आईआईएफ एक साधारण केस स्टेटमेंट के लिए सिर्फ एक शॉर्टेंड है। यह क्वेरी ऑप्टिमाइज़ेशन और निष्पादन के लिए केस स्टेटमेंट में भी अनुवादित है: http://technet.microsoft.com/en-us/library/hh213574.aspx –

+0

यह शर्म की बात है कि शॉर्टेंड मानक का हिस्सा नहीं है (यह क्या है इन दिनों? ANSISQL?) क्योंकि इसे पढ़ने में बहुत आसान है। लेकिन फिर टी-एसक्यूएल हमेशा थोड़ा सा रहा है ... "शब्दशः"। –

उत्तर

72

IIFCASE WHEN <Condition> THEN <true part> ELSE <false part> END जैसा ही है। क्वेरी योजना वही होगी। प्रारंभ में लागू होने के रूप में, शायद, "वाक्य रचनात्मक चीनी" है।

सीएएसई सभी एसक्यूएल प्लेटफॉर्म पर पोर्टेबल है जबकि आईआईएफ एसक्यूएल सर्वर 2012+ विशिष्ट है।

+1

शायद सिंटैक्स को याद रखने के लिए एक्सेस/वीबी डेवलपर्स पर इसे आसान बनाना। – GibralterTop

7

आईआईएफ एक गैर-मानक टी-एसक्यूएल फ़ंक्शन है। इसे एसक्यूएल सर्वर 2012 में जोड़ा गया था, ताकि एक्सेस आईआईएफ के मामले से पहले केस को दोबारा बिना किए बिना SQL सर्वर पर माइग्रेट कर सके। एक बार एक्सेस डीबी पूरी तरह से SQL सर्वर में माइग्रेट हो जाने पर, आप रिफैक्टर कर सकते हैं।

+2

मुझे आपकी तर्क पसंद है। क्या आप कुछ दस्तावेज उद्धृत करके इसका समर्थन कर सकते हैं? –

संबंधित मुद्दे