Oracle PL/SQL Case-verklaring

Oracle Pl Sql Case Verklaring



Controlestroom is een van de belangrijkste bouwstenen bij het programmeren. Het definieert de volgorde waarin de verschillende codeblokken in een programma worden uitgevoerd.

Zoals de meeste programmeertalen biedt de Oracle PL/SQL-taal verschillende besturingsstroominstructies zoals IF-THEN, CASE, FOR, WHILE, enz.







In dit bericht leren we hoe we met de CASE-instructie in PL/SQL kunnen werken om de besturingsstroom in onze Oracle-query's te introduceren.



Inleiding tot de CASE-verklaring

Met het CASE-statement kunt u een reeks statements definiëren. De case-instructie selecteert vervolgens één reeks om uit te voeren op basis van de opgegeven voorwaarde.



Zie het als een efficiëntere manier om een ​​reeks als-dan-blokken te declareren terwijl de leesbaarheid behouden blijft.





We kunnen de syntaxis van de CASE-instructie in Oracle uitdrukken, zoals hieronder weergegeven:

GEVAL
WANNEER voorwaarde1 DAN resultaat1
WANNEER voorwaarde2 DAN resultaat2
...
ELSE resultaat
EINDE

De instructie CASE evalueert elke voorwaarde in de WHEN-clausules in deze syntaxis.



Als de instructie een overeenkomende instructie vindt, wordt het overeenkomende resultaat geretourneerd. In sommige gevallen kan de casusverklaring echter geen overeenkomende voorwaarde vinden. In een dergelijk scenario voert de instructie het resultaat uit dat is gedefinieerd in het ELSE-blok.

NOTITIE : Het ELSE-blok is optioneel. Indien niet beschikbaar, gebruikt de database-engine de volgende syntaxis:

ANDERS:
RAISE CASE_NOT_FOUND;

Hierdoor kan de database-engine een uitzondering genereren en de uitvoering onderbreken als er geen overeenkomende voorwaarde is.

Voorbeeld 1: CASE Verklaring Basisvoorbeeld

Dit voorbeeld toont een basisvoorbeeld van het gebruik van de case-operator in Oracle:

verklaren
leeftijdsnummer;
invoerteken(10);
beginnen
leeftijd := 24;
geval leeftijd
wanneer 17 dan
entry := 'ontkend';
wanneer 24 dan
ingang := '9.99';
toen 45 dan
invoer :='15.99';
anders
vermelding := 'niet toegestaan';
eindgeval;
DBMS_OUTPUT.PUT_LINE(invoer);
einde;

De verstrekte afbeelding moet testen op elke overeenkomende voorwaarde en de bijbehorende status retourneren. Aangezien de overeenkomende voorwaarde bijvoorbeeld 24 is, retourneert de clausule als volgt:

9,99

Voorbeeld 2: CASE-verklaring met een databasetabel

In dit voorbeeld wordt de case-instructie gebruikt met een databasetabel.

selecteer voornaam, achternaam, salaris,
geval
bij salaris  2500 dan 'Hoog'
anders 'Onbekend'
eindigen als salaris_status
van WERKNEMERS;

De verstrekte query gebruikt de case-instructie om het salarisbereik uit de werknemerstabel te testen.

De resulterende waarde is zoals weergegeven in het volgende:

Conclusie

In dit bericht heb je geleerd hoe je de Oracle-caseverklaring kunt gebruiken om de verschillende voorwaarden te testen en een actie uit te voeren als er een waar is.