Oracle PL/SQL Case Statement

Oracle Pl Sql Case Statement



Kontrolflow er en af ​​de primære byggesten i programmering. Den definerer rækkefølgen, hvori de forskellige kodeblokke udføres i et program.

Som de fleste programmeringssprog giver Oracle PL/SQL-sproget forskellige kontrolflow-sætninger såsom IF-THEN, CASE, FOR, WHILE osv.







I dette indlæg lærer vi, hvordan man arbejder med CASE-sætningen i PL/SQL for at introducere kontrolflowet i vores Oracle-forespørgsler.



Introduktion til CASE Statement

CASE-sætningen giver dig mulighed for at definere en sekvens af udsagn. Case-sætningen vælger derefter én sekvens, der skal udføres baseret på den angivne betingelse.



Tænk på det som en mere effektiv måde at erklære et sæt hvis-så-blokke på, samtidig med at læsbarheden bevares.





Vi kan udtrykke syntaksen for CASE-sætningen i Oracle som vist i følgende:

SAG
NÅR tilstand1 SÅ resultat1
NÅR tilstand2 SÅ resultat2
...
ANDET resultat
ENDE

CASE-sætningen evaluerer hver betingelse i WHEN-sætningerne i denne syntaks.



Hvis udsagnet finder et matchende udsagn, returnerer det det matchende resultat. I nogle tilfælde kan sagsfremstillingen dog ikke finde en matchende betingelse. I et sådant scenarie udfører sætningen resultatet, som er defineret i ELSE-blokken.

BEMÆRK : ELSE-blokken er valgfri. Hvis den ikke er tilgængelig, bruger databasemotoren følgende syntaks:

ANDET:
RAISE CASE_NOT_FOUND;

Dette giver databasemotoren mulighed for at rejse en undtagelse og sætte udførelsen på pause, når der ikke er nogen matchende betingelse.

Eksempel 1: CASE Statement Grundlæggende eksempel

Dette eksempel viser et grundlæggende eksempel på brug af sagsoperatøren i Oracle:

erklære
aldersnummer;
indtastningstegn(10);
begynde
alder:= 24;
sagens alder
når 17 så
indgang := 'afvist';
når 24 så
indgang := '9.99';
når 45 så
indtastning :='15,99';
andet
indgang := 'ikke tilladt';
slutsag;
DBMS_OUTPUT.PUT_LINE(indgang);
ende;

Den medfølgende illustration bør teste for enhver matchende tilstand og returnere den tilsvarende status. For eksempel, da den matchende betingelse er 24, returnerer klausulen som følger:

9,99

Eksempel 2: CASE-erklæring med en databasetabel

Dette eksempel bruger case-sætningen med en databasetabel.

vælg fornavn, efternavn, løn,
sag
når løn  2500 derefter 'Høj'
ellers 'ukendt'
ende som lønstatus
fra MEDARBEJDERE;

Den angivne forespørgsel bruger sagsopgørelsen til at teste lønintervallet fra medarbejdernes tabel.

Den resulterende værdi er som vist i følgende:

Konklusion

I dette indlæg lærte du, hvordan du bruger Oracle case-sætningen til at teste de forskellige forhold og udføre en handling, hvis en er sand.