SQL सर्वर में, IIF()
फ़ंक्शन (IF
. के साथ भ्रमित नहीं होना चाहिए स्टेटमेंट) एक सशर्त फ़ंक्शन है जो पहले तर्क के मूल्यांकन के आधार पर दूसरा या तीसरा तर्क देता है।
यह CASE
. लिखने का एक शॉर्टहैंड तरीका है अभिव्यक्ति। यह तार्किक रूप से CASE WHEN X THEN Y ELSE Z END
के बराबर है IIF(X, Y, Z)
मानते हुए ।
IIF()
तत्काल IF . का संक्षिप्त नाम है ।
सिंटैक्स
वाक्य रचना इस प्रकार है:
IIF ( boolean_expression, true_value, false_value )
कहां:
- बूलियन_एक्सप्रेशन मूल्यांकन की जाने वाली अभिव्यक्ति है।
- true_value अगर boolean_expression . है तो लौटा दिया जाता है सच है।
- false_value अगर boolean_expression . है तो लौटा दिया जाता है गलत या अज्ञात है।
CASE
. की तरह भाव, IIF()
कथनों को केवल 10 के अधिकतम स्तर तक नेस्ट किया जा सकता है।
उदाहरण
कैसे IIF()
. को प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है काम करता है।
SELECT IIF( 1 < 2, 'True', 'False' );
परिणाम:
True
इस मामले में, मूल्यांकन करने के लिए अभिव्यक्ति 1 < 2
. है . यह सच है कि 1 2 से कम है इसलिए दूसरा तर्क वापस कर दिया गया।
यह निम्नलिखित करने के बराबर है।
SELECT
CASE WHEN 1 < 2 THEN 'True'
ELSE 'False'
END;
परिणाम:
True
इन उदाहरणों में मैंने "सच" और "गलत" शब्दों का इस्तेमाल किया, लेकिन मैं कुछ भी इस्तेमाल कर सकता था।
उदाहरण के लिए, मैं इसके बजाय ऐसा कर सकता था:
SELECT IIF( 1 < 2, 'Fail', 'Pass' );
परिणाम:
Fail
या यह "सत्य" या "झूठे" बाइनरी-प्रकार के उत्तर से पूरी तरह से हटाया गया कुछ हो सकता है।
उदाहरण के लिए:
SELECT IIF( 1 < 2, 'Deadlift', 'Bench Press' );
परिणाम:
Deadlift
चर का परीक्षण करना
व्यवहार में, आप सामान्य रूप से पिछले उदाहरणों की तरह स्थिरांक के बजाय चर, कॉलम आदि का परीक्षण करेंगे।
यहां एक उदाहरण दिया गया है जो एक चर का परीक्षण करता है।
DECLARE @bankBalance int = 123;
SELECT IIF(@bankBalance > 100, 'Rich!', 'Poor');
परिणाम:
Rich!
डेटाबेस उदाहरण
यहां एक उदाहरण दिया गया है जो डेटाबेस से कॉलम का उपयोग करता है।
SELECT TOP(10)
Name,
Population,
IIF(
Population > 400000,
'Big City',
'Small City'
) AS 'Big/Small'
FROM city;
परिणाम:
+----------------+--------------+-------------+ | Name | Population | Big/Small | |----------------+--------------+-------------| | Kabul | 1780000 | Big City | | Qandahar | 237500 | Small City | | Herat | 186800 | Small City | | Mazar-e-Sharif | 127800 | Small City | | Amsterdam | 731200 | Big City | | Rotterdam | 593321 | Big City | | Haag | 440900 | Big City | | Utrecht | 234323 | Small City | | Eindhoven | 201843 | Small City | | Tilburg | 193238 | Small City | +----------------+--------------+-------------+
नेस्टेड IIF() फ़ंक्शन
यहां एक IIF()
नेस्ट करने का एक उदाहरण दिया गया है समारोह। “घोंसले” से मेरा मतलब है कि मैं एक और IIF()
pass पास करता हूं बाहरी IIF()
के लिए एक तर्क के रूप में कार्य करें समारोह।
DECLARE @bankBalance int = 123;
SELECT IIF(
@bankBalance > 100,
IIF(@bankBalance > 150, 'Rich!', 'Wealthy'),
'Poor'
);
परिणाम:
Wealthy
आप नेस्ट कर सकते हैं IIF()
10 के स्तर तक कार्य करता है।