Oracle PL / SQL: CASE-uttalelse med eksempler

Innholdsfortegnelse:

Anonim

Hva er CASE Statement?

En CASE-setning ligner IF-THEN-ELSIF-setningen som velger ett alternativ basert på tilstanden fra de tilgjengelige alternativene.

  • CASE-setningen bruker "selector" i stedet for et boolsk uttrykk for å velge sekvensen.
  • Verdien av uttrykket i CASE-setningen blir behandlet som en velger.
  • Uttrykket kan være av hvilken som helst type (aritmetikk, variabler osv.)
  • Hvert alternativ er tilordnet en bestemt forhåndsdefinert verdi (velger), og alternativet med velgerverdi som samsvarer med den betingede uttrykksverdien blir utført.
  • I motsetning til IF-THEN-ELSIF, kan CASE-setningen også brukes i SQL-setninger.
  • ELSE-blokkering i CASE-setning inneholder sekvensen som må utføres når ingen av alternativene ble valgt.

Syntaks:

CASE (expression)WHEN  THEN action_blockl;WHEN  THEN action_block2;WHEN  THEN action_block3;ELSE action_block_default;END CASE;
  • I syntaksen ovenfor vil uttrykket returnere en verdi som kan være av hvilken som helst type (variabel, tall osv.).
  • Hver 'WHEN'-ledd behandles som et alternativ som har og .
  • "NÅR" -satsen som samsvarer med verdien som uttrykket, blir valgt, og den tilsvarende vil bli utført.
  • ELSE-blokken er valgfri som inneholder som må utføres når ingen av alternativene samsvarer med uttrykksverdien.
  • 'SLUTT' markerer slutten på CASE-uttalelsen, og det er en obligatorisk del av CASE.

Eksempel 1: Aritmetisk beregning ved bruk av Case

I dette eksemplet skal vi gjøre aritmetisk beregning mellom to tall 55 og 5.

DECLAREa NUMBER :=55;b NUMBER :=5;arth_operation VARCHAR2(20) :='MULTIPLY’;BEGINdbms_output.put_line(‘Program started.' );CASE (arth_operation)WHEN ‘ADD’ THEN dbms_output.put_line(‘Addition of the numbers are: '|| a+b );WHEN ‘SUBTRACT' THEN dbms_output.put_line(‘Subtraction of the numbers are: '||a-b );WHEN ‘MULTIPLY' THEN dbms_output.put_line(‘Multiplication of the numbers are: '|| a*b);WHEN ‘DIVIDE' THEN dbms_output.put_line(‘Division of the numbers are:'|| a/b);ELSE dbms_output.put_line(‘No operation action defined. Invalid operation');END CASE;dbms_output.put_line(‘Program completed.' );END;/

Kode Forklaring:

  • Kodelinje 2: Erklærer variabelen 'a' som 'NUMBER' datatype og initialiserer den med verdien '55'.
  • Kodelinje 3: Erklærer variabelen 'b' som 'NUMBER' datatype og initialiserer den med verdien '5.'
  • Kodelinje 4: Deklarerer variabelen 'arth_operation' som 'VARCHAR2' datatype størrelse 20 og initialiserer den med verdien 'MULTIPLY'.
  • Kodelinje 6: Utskrift av setningen "Programmet startet".
  • Kodelinje 7: CASE sjekker verdien av uttrykket. I dette tilfellet er verdien av variabelen 'arth_operation' 'MULTIPLY'. Denne verdien vil bli behandlet som en velger for denne CASE-setningen nå.
  • Kodelinje 10: NÅR setningen med verdien 'MULTIPLY' samsvarer med velgerverdien, vil derfor kontrolleren velge denne handlingsblokken og skrive ut meldingen 'Multiplikasjon av tallene er: 275'.
  • Kodelinje13: Markerer slutten på CASE-setningen.
  • Kodelinje 14: Utskrift av utsagnet "Program fullført".

Kodeutgang:

Program started.Multiplication of the numbers are: 275Program completed.

SØKET SAK Uttalelse

SEARCHED CASE-setningen ligner CASE-setningen, i stedet for å bruke velgeren til å velge alternativet, vil SEARCHED CASE direkte ha uttrykket definert i WHEN-setningen.

  • Den første NÅR-klausulen som oppfyller betingelsen vil bli utført, og kontrolleren hopper over de gjenværende alternativene.

Syntaks:

CASEWHEN  THEN action_blockl;WHEN  THEN action_block2;WHEN  THEN action_block3;ELSE action_block_default;END CASE;
  • I den ovennevnte syntaksen har hver WHEN-ledd separate og .
  • WHEN-setningen som uttrykket returnerer SANN for, blir utført.
  • ELSE-blokken er valgfri som inneholder som må utføres når ingen av alternativene tilfredsstiller.
  • 'SLUTT' markerer slutten på CASE-setningen, og det er en obligatorisk del av CASE.

Eksempel 1: Aritmetisk beregning ved hjelp av søkt sak

I dette eksemplet skal vi gjøre aritmetisk beregning mellom to tall 55 og 5.

DECLARE a NUMBER :=55;b NUMBER :=5;arth_operation VARCHAR2(20) :='DIVIDE';BEGINdbms_output.put_line(‘Program started.' );CASEWHEN arth_operation = 'ADD'THEN dbms_output.put_line(‘Addition of the numbers are: '||a+b );WHEN arth_operation = ‘SUBTRACT'THEN dbms_output.put_line(‘Subtraction of the numbers are: '|| a-b);WHEN arth_operation = ‘MULTIPLY’THEN dbms_output.put_line(‘Multiplication of the numbers are: '|| a*b );WHEN arth_operation = ’DIVIDE'THEN dbms_output.put_line(‘Division of the numbers are: '|| a/b ):ELSE dbms_output.put_line(‘No operation action defined. Invalid operation');END CASE;dbms_output.put_line(‘Program completed.' );END;/

Kode Forklaring:

  • Kodelinje 2: Erklærer variabelen 'a' som 'NUMBER' datatype og initialiserer den med verdien '55'.
  • Kodelinje 3: Erklærer variabelen 'b' som 'NUMBER' datatype og initialiserer den med verdien '5'.
  • Kodelinje 4: Erklærer variabelen 'arth_operation' som 'VARCHAR2' datatype av størrelse 20 og initialiserer den med verdien 'DIVIDE'.
  • Kodelinje 6: Utskrift av setningen "Programmet startet".
  • Kodelinje 7: SØKET CASE-utsagn begynner. Koden fra linje 8 til linje 13 blir hoppet over da deres velgerverdi (ADD, SUBTRACT, MULTIPLY) ikke samsvarer med verdien til 'arth_operation'.
  • Kodelinje 14: NÅR setningsuttrykket "arth_operation = 'DIVIDE'" er tilfreds og uttrykket returnerer SANT.
  • Kodelinje 15: Handlingsblokk av WHEN-setningen vil bli utført, og meldingen 'Inndeling av tallene er: 11' vil bli skrevet ut.
  • Kodelinje 17: Markerer slutten av CASE-setningen.
  • Kodelinje 18: Utskrift av utsagnet "Program fullført".

Kodeutgang:

Program started.Division of the numbers are: 11Program completed.

Sammendrag

TYPE BESKRIVELSE BRUK

SAK

I likhet med IF-THEN-ELSIF uttalelse. En 'SELECTOR' brukes til å velge alternativ i stedet for boolsk uttrykk.

Brukes til å velge mellom flere alternativer ved hjelp av 'SELECTOR'

SØKT SAK

CASE-setning uten egentlig 'SELECTOR'. I stedet inneholder den den faktiske tilstanden (som evalueres til SANT / FALSK) som vil velge alternativene.

Brukes for det meste å velge mellom mer enn to alternativer.