Følgende er betingede udtryk i SQL
- CASE-udtrykket: Lader dig bruge IF-THEN-ELSE-sætninger uden at skulle påberåbe sig procedurer.
-
Input: SELECT GREATEST('XYZ', 'xyz') from dual;>Output: GREATEST('XYZ', 'xyz') xyz>Forklaring: ASCII-værdien af små alfabeter er større.
-
Input: SELECT GREATEST('XYZ', null, 'xyz') from dual; Output: GREATEST('XYZ', null, 'xyz') ->Forklaring: Da null er til stede derfor, vil null blive vist som output (som nævnt i beskrivelsen ovenfor).
-
Input: SELECT IFNULL(1,0) FROM dual;>
Output: - 1>
Forklaring: Da ingen udtryk er nul.
-
Input: SELECT IFNULL(NULL,10) FROM dual; Output: -- 10>
Forklaring: Da udtr1 er nul og derfor vises udtr2.
-
strong>Input: VÆLG MINDST('XYZ', 'xyz') fra dual; Output: MINDST('XYZ', 'xyz') XYZ>Forklaring: ASCII-værdien af store alfabeter er mindre.
-
Input: SELECT LEAST('XYZ', null, 'xyz') from dual; Output: LEAST('XYZ', null, 'xyz') ->Forklaring: Da null er til stede derfor, vil null blive vist som output (som nævnt i beskrivelsen ovenfor).
I et simpelt CASE-udtryk søger SQL'en efter det første WHEN……THEN-par, hvor udtr er lig med sammenligningsuddr og returnerer udtr. Hvis ovenstående betingelse ikke er opfyldt, eksisterer der en ELSE-sætning, SQL returnerer else_expr. Ellers returnerer NULL.
Vi kan ikke angive bogstavelig null for return_expr og else_expr. Alle udtryk (udtr., sammenligningsudd., returudd.) skal være af samme datatype.
Syntaks:
CASE expr WHEN comparison_expr1 THEN return_expr1 [ WHEN comparison_expr2 THEN return_expr2 . . . WHEN comparison_exprn THEN return_exprn ELSE else_expr] END>
Eksempel:
Input : SELECT first_name, department_id, salary, CASE department_id WHEN 50 THEN 1.5*salary WHEN 12 THEN 2.0*salary ELSE salary END 'REVISED SALARY' FROM Employee;>
Output:

Forklaring : I ovenstående SQL-sætninger er værdien af afdelings_id afkodet. Hvis det er 50, så laves lønnen 1,5 gange, hvis den er 12, så betales lønnen 2 gange, ellers er der ingen ændring i lønnen. DECODE-funktionen: Letter betingede forespørgsler ved at udføre arbejdet med en CASE eller IF-THEN-ELSE-erklæring.
DECODE-funktionen afkoder et udtryk på en måde, der ligner HVIS-SÅ-ELSE-logikken, der bruges på forskellige sprog. Funktionen DECODE afkoder udtryk efter at have sammenlignet det med hver søgeværdi. Hvis udtrykket er det samme som søgning, returneres resultatet.
Hvis standardværdien udelades, returneres en nulværdi, hvor en søgeværdi ikke matcher nogen af resultatværdierne.
Syntaks:
ssh fuld formular
DECODE (col/expression, search1, result1 [, search2, result2,........,] [, default])>
Input : SELECT first_name, department_id, salary, DECODE(department_id, 50, 1.5*salary, 12, 2.0*salary, salary) 'REVISED SALARY' FROM Employee;>
Output:
Forklaring: I ovenstående SQL-sætninger testes værdien af afdeling_id. Hvis det er 50, så laves lønnen 1,5 gange, hvis den er 12, så betales lønnen 2 gange, ellers er der ingen ændring i lønnen.
BEMÆRK: På samme måde som CASE-udtryk vil COALESCE heller ikke evaluere argumenterne til højre for det første fundne ikke-nul-argument.
Syntaks:
COALESCE( value [, ......] )>
Input: SELECT COALESCE(last_name, '- NA -') from Employee;>
Produktion:
Forklaring: - NA - vil blive vist på det sted, hvor efternavnet er null, ellers vil de respektive efternavne blive vist. STØRSTE: Returnerer den største værdi fra en liste over et vilkårligt antal udtryk. Sammenligning skelner mellem store og små bogstaver. Hvis datatyperne for alle udtryk på listen ikke er ens, konverteres resten alle udtryk til datatypen for det første udtryk til sammenligning, og hvis denne konvertering ikke er mulig, vil SQL give en fejl.
BEMÆRK: Returnerer null, hvis et udtryk på listen er null.
Syntaks:
GREATEST( expr1, expr2 [, .....] )>
Syntaks:
IFNULL( expr1, expr2 )>
BEMÆRK: På samme måde som CASE- og COALESCE-udtryk, vil IN heller ikke evaluere argumenterne til højre for det første fundne ikke-nul-argument.
Syntaks:
WHERE column IN ( x1, x2, x3 [,......] )>
Input: SELECT * from Employee WHERE department_id IN(50, 12);>
Produktion:

Forklaring: Alle data om medarbejdere vises med afdelings-ID 50 eller 12.
MINDST: Returnerer den mindste værdi fra en liste over et vilkårligt antal udtryk. Sammenligning skelner mellem store og små bogstaver. Hvis datatyperne for alle udtryk på listen ikke er ens, konverteres resten alle udtryk til datatypen for det første udtryk til sammenligning, og hvis denne konvertering ikke er mulig, vil SQL give en fejl.BEMÆRK: Returnerer null, hvis ethvert udtryk på listen er null.
rekha alder
Syntaks:
LEAST( expr1, expr2 [, ......] )>
Syntaks:
NULLIF( value1, value2 )>
Eksempel:
Input: SELECT NULLIF(9995463931, contact_num) from Employee;>
Produktion:

Forklaring: NULL vises for den medarbejder, hvis nummer er matchet med det givne nummer. For resten af Medarbejderne returneres værdi1.