Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में IIF () कैसे काम करता है

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 के स्तर तक कार्य करता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाधाओं को अस्थायी रूप से बंद करें (MS SQL)

  2. तालिका के सेट पर सीडीसी को अक्षम कैसे करें या SQL सर्वर में डेटाबेस में सभी तालिकाओं पर अक्षम करें - SQL सर्वर ट्यूटोरियल

  3. SQL सर्वर में डेटाबेस चेकप्वाइंट

  4. SQL सर्वर में 'डेटाटाइम 2' संग्रहण आकार को समझना

  5. SQL सर्वर में केवल दिनांक के साथ डेटाटाइम की तुलना कैसे करें