logo

SQL | Betingede udtryk

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.
    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.

    COALESCE : Returnerer det første ikke-nul-argument. Null returneres kun, hvis alle argumenter er nul. Det bruges ofte til at erstatte en standardværdi med null-værdier, når data hentes til visning.
    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 [, .....] )>
    •  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).

    IFNULL: Hvis udtr1 ikke er NULL, returnerer udtr1; ellers returnerer den udtr2. Returnerer en numerisk eller strengværdi, afhængigt af den kontekst, den bruges i.
    Syntaks:

     IFNULL( expr1, expr2 )>
    •  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.

    IN: Kontrollerer, om en værdi er til stede i et sæt værdier og kan bruges med WHERE, CHECK og oprettelse af visninger.
    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 [, ......] )>
    •  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).

    NULLIF: Returnerer en nulværdi, hvis værdi1=værdi2, ellers returnerer den værdi1.
    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.