Conditional Statements: IF-THEN, IF-ELSE, multiple conditions, nested IF, CASE

Conditional statements आपके database programs को data को dynamically जाँचने और चलते-चलते अलग execution paths चुनने देते हैं।

10 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

जब critical errors हों तो एक route चुनना

कल्पना कीजिए एक customer आधी रात TicketDesk पर एक नया ticket log करता है। अगर priority Critical है, आपको तुरंत एक senior manager को text करना होगा। अगर priority High है, एक email notification भेजना काफ़ी है। अगर यह Low है, आप इसे सुबह तक बस database queue में छोड़ सकते हैं। Standard SQL हर एक row को एक समान update करता है, पर असल ज़िंदगी में फ़ैसले लेने की ज़रूरत होती है। आपका database code data को dynamically कैसे देखे और कई options में से बिल्कुल एक operational path कैसे चुने?

Theory

Railway Track Switch

एक basic SQL statement को एक सीधी train track की तरह सोचिए जो बिना रुके एक station से दूसरे तक चलती है। हर row बिल्कुल एक ही track पर चलती है। PL/SQL में conditional control एक railway track switch जैसा है। जैसे train पास आती है, एक sensor इसका destination card जाँचता है। अगर card कहता है Express, switch बाएँ track की ओर पलटता है। अगर यह कहता है Local, switch दाएँ रहता है। data ख़ुद तय करता है कि system कौन सा route ले।

Theory

Oracle PL/SQL में Conditional Statements

Oracle dialect में, conditional statements आपको runtime values के आधार पर program execution flow नियंत्रित करने देते हैं। code को आँख मूँदकर line-दर-line execute करने के बजाय, engine एक तार्किक condition evaluate करता है जिसका परिणाम true, false, या null होता है। PL/SQL निर्णय लेने के लिए दो मुख्य structural constructs देता है: IF statement family (IF-THEN, IF-THEN-ELSE, और IF-THEN-ELSIF समेत) और CASE statement। ये constructs आपको multi-path branches साफ़-सुथरे सँभालने देते हैं।

At a glance

Oracle procedural code के भीतर decision control options की तुलना

Construct TypeBest Use CaseKey Structural Keyword
IF-THENcode का एक block केवल तब execute करना जब एक अकेली condition पूरी होTHEN
IF-THEN-ELSEदो परस्पर अनन्य वैकल्पिक रास्तों के बीच चुननाELSE
IF-THEN-ELSIFगहरी nesting बिना कई क्रमिक conditions जाँचनाELSIF
CASE Statementएक expression को कई ख़ास असतत values से match करनाWHEN

Practical

Priority Routing Logic लागू करना

-- Enable console printing in Oracle SQL*Plus
SET SERVEROUTPUT ON;

DECLARE
  v_priority VARCHAR2(20) := 'High';
  v_action VARCHAR2(100);
BEGIN
  -- Evaluate conditions sequentially using ELSIF
  IF v_priority = 'Critical' THEN
    v_action := 'Send SMS alert to Senior Engineer';
  ELSIF v_priority = 'High' THEN
    v_action := 'Assign to Senior Agent and email group';
  ELSE
    v_action := 'Route to general helpdesk queue';
  END IF;
  
  DBMS_OUTPUT.PUT_LINE('Action taken: ' || v_action);
END;
/

Copy करके Oracle FreeSQL खोलें
Oracle FreeSQL, Oracle SQL का मुफ़्त online editor है। Code पहले copy हो जाता है: उसे वहां paste करके Run करें।

Quiz

एक Oracle PL/SQL IF block की मध्यवर्ती branches में इस्तेमाल multi-condition keyword की वर्तनी ध्यान से देखिए। कौन सा option सही syntax दर्शाता है?

  1. ELSEIF
  2. ELSIF
  3. ELSE IF
  4. IFELSE
Show the answer

ELSIF

Oracle PL/SQL explicit keyword ELSIF इस्तेमाल करता है S के बाद एक E बिना और एक अकेले शब्द के रूप में लिखा। आम ग़लतियों में इसे ELSEIF लिखना या ELSE IF जैसे दो शब्दों में बाँटना शामिल है, दोनों जो Oracle database environments में एक तुरंत compilation syntax failure trigger करते हैं।

Think first

Mental Challenge: Value Matching के लिए CASE इस्तेमाल करना

मान लीजिए आप status values: 'Open', 'In Progress', या 'Closed' के आधार पर labels print करने के लिए एक IF-THEN-ELSIF structure को एक सरल CASE statement से बदलना चाहते हैं। tap करने से पहले आप अपने मन में CASE statement कैसे बिछाएँगे?

Show the answer

आप CASE selector construct इस्तेमाल करेंगे:

CASE v_status

WHEN 'Open' THEN DBMS_OUTPUT.PUT_LINE('New ticket');

WHEN 'In Progress' THEN DBMS_OUTPUT.PUT_LINE('Work started');

WHEN 'Closed' THEN DBMS_OUTPUT.PUT_LINE('Job completed');

ELSE DBMS_OUTPUT.PUT_LINE('Unknown status');

END CASE;

ध्यान दीजिए कि एक regular SQL query CASE expression के उलट, एक procedural PL/SQL CASE statement END CASE; और एक पिछले semicolon के साथ समाप्त होता है।

Watch out

आम ELSIF और END IF वर्तनी Errors

university laboratory practical exams के दौरान भारतीय BCA students द्वारा की गई सबसे बार-बार होने वाली ग़लती keywords की वर्तनी ग़लत करना है। एक 'E' के साथ ELSEIF लिखना Oracle को आपका पूरा block अस्वीकार करने पर मजबूर करेगा। एक और classic जाल END IF; के बाद पिछला semicolon छोड़ना या इसे एक अकेले शब्द ENDIF के रूप में लिखना है। हर अलग IF construct को एक explicit END IF; spacing के साथ एक समाप्त करते semicolon चाहिए ताकि parser को बताए कि conditional zone ख़त्म हो गया।

Theory

असली दुनिया के Priority Escalation Systems

product integrity operations या enterprise ticket routing tools जैसे बड़े tech environments में, यह बिल्कुल conditional logic रोज़ लाखों बार चलता है। जब एक ticket SLA limits पार करता है, conditional rules तुरंत variables update करते और assignments escalate करते हैं। आप इस बुनियादी decision structure पर अगले semester अपने Sem 3 SQLite mobile database programming course में निर्माण करेंगे, जहाँ आप smartphone local sync routines के अंदर logical branching इस्तेमाल करेंगे।

Summary

Key takeaways

  • Conditional statements evaluate किए तार्किक logic के आधार पर एक ख़ास operational path dynamically चुनते हैं।
  • बुनियादी Oracle structures में IF-THEN family और असतत CASE statement branches शामिल हैं।
  • keyword की वर्तनी पर ध्यान दीजिए: यह हमेशा character E बिना ELSIF के रूप में लिखा जाता है।
  • हर procedural IF block container को औपचारिक रूप से दो शब्दों END IF; statement इस्तेमाल करके समाप्त होना होगा।
  • जब एक expression को scalar options से match करते हैं तो CASE structures साफ़ code के लिए उत्कृष्ट विकल्प हैं।
  • Memory hook: IF से जाँचो, ELSIF से paths जोड़ो, ELSE से fallback करो, और END IF से बंद करो!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from PL/SQL and Conditional Statements

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Conditional Statements: IF-THEN, IF-ELSE, multiple conditions, nested IF, CASE · Mastering SQL - PL/SQL (SEC-02 option A) · Gri-Learn