Oracle PL/SQL Case Statement

Oracle PL/SQL Case Statement

Kontrollstrømmen er en av de primære byggesteinene i programmering. Den definerer rekkefølgen som de forskjellige kodeblokkene blir utført i et program.

Som de fleste programmeringsspråk, gir Oracle PL/SQL-språket forskjellige kontrollstrømuttalelser som if-da, case, for, mens osv.

I dette innlegget vil vi lære å jobbe med saksuttalelsen i PL/SQL for å introdusere kontrollstrømmen i Oracle -spørsmålene våre.

Introduksjon til saksuttalelsen

Sakserklæringen lar deg definere en utsagnsekvens. Saksuttalelsen velger deretter en sekvens som skal utføres basert på den spesifiserte tilstanden.

Tenk på det som en mer effektiv måte å erklære et sett med if-da-blokker mens du bevarer lesbarhet.

Vi kan uttrykke syntaks for saksuttalelsen i Oracle som vist i følgende:

SAK
Når tilstand1 så resultat1
Når tilstand2 så resultat2
..
Annet resultat
SLUTT

Saksuttalelsen evaluerer hver tilstand i når klausulene i denne syntaksen.

Hvis uttalelsen finner en samsvarende uttalelse, returnerer den samsvarende resultat. I noen tilfeller kan det hende at saksoppgaven ikke finner en samsvarende tilstand. I et slikt scenario utfører uttalelsen resultatet som er definert i andre blokken.

MERK: Den andre blokken er valgfri. Hvis den ikke er tilgjengelig, bruker databasemotoren følgende syntaks:

ELLERS:
Hev case_not_found;

Dette gjør at databasemotoren kan heve et unntak og pause utførelsen når det ikke er noen samsvarende tilstand.

Eksempel 1: Case Statement Grunnleggende eksempel

Dette eksemplet viser et grunnleggende eksempelbruk av saksoperatøren i Oracle:

erklære
aldersnummer;
oppføring Char (10);
begynne
Alder: = 24;
sak Alder
Når 17 da
Oppføring: = 'Denined';
Når 24 da
Oppføring: = '9.99 ';
Når 45 da
Oppføring: = '15.99 ';
ellers
Oppføring: = 'Ikke tillatt';
sluttsak;
Dbms_output.Put_line (oppføring);
slutt;

Den medfølgende illustrasjonen skal teste for enhver samsvarende tilstand og returnere tilsvarende status. For eksempel, siden den samsvarende tilstanden er 24, kommer klausulen tilbake som følger:

9.99

Eksempel 2: Saksuttalelse med en databasetabell

Dette eksemplet bruker saksuttalelsen med en databasetabell.

Velg First_name, Last_name, Lønn,
sak
Når lønn 2500 så 'høy'
annet 'ukjent'
Slutt som Salary_status
fra ansatte;

Den oppgitte spørringen bruker saksoppgaven for å teste lønnsområdet fra de ansattes tabell.

Den resulterende verdien er som vist på følgende:

Konklusjon

I dette innlegget lærte du hvordan du bruker Oracle Case -uttalelsen for å teste de forskjellige forholdene og utføre en handling hvis man er sann.