logo

SQL | Betingede uttrykk

Følgende er betingede uttrykk i SQL

    CASE-uttrykket : La deg bruke IF-THEN-ELSE-setninger uten å måtte påkalle prosedyrer.
    I et enkelt CASE-uttrykk søker SQL-en etter det første WHEN... Hvis betingelsen ovenfor ikke er oppfylt, eksisterer en ELSE-klausul, SQL returnerer else_expr. Ellers returnerer NULL.
    Vi kan ikke spesifisere bokstavelig null for return_expr og else_expr. Alle uttrykkene (uttr, sammenligningsuttr, returuttr) må være av 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;>

      Utgang:

    Forklaring : I SQL-setningene ovenfor er verdien av department_id dekodet. Hvis det er 50, blir det lønnet 1,5 ganger, hvis det er 12, blir det lønnet 2 ganger, ellers er det ingen endring i lønn. DECODE-funksjonen: Forenkler betingede forespørsler ved å gjøre arbeidet med en CASE- eller IF-THEN-ELSE-uttalelse.
    DECODE-funksjonen dekoder et uttrykk på en måte som ligner på IF-THEN-ELSE-logikken som brukes på forskjellige språk. DECODE-funksjonen dekoder uttrykket etter å ha sammenlignet det med hver søkeverdi. Hvis uttrykket er det samme som søk, returneres resultatet.
    Hvis standardverdien utelates, returneres en nullverdi der en søkeverdi ikke samsvarer med noen av resultatverdiene.
    Syntaks:



    ssh full form
     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;>

    Utgang:

    Forklaring: I SQL-setningene ovenfor, testes verdien av department_id. Hvis det er 50, blir det lønnet 1,5 ganger, hvis det er 12, blir det lønnet 2 ganger, ellers er det ingen endring i lønn.

    COALESCE : Returnerer det første ikke-null-argumentet. Null returneres bare hvis alle argumenter er null. Det brukes ofte til å erstatte en standardverdi med nullverdier når data hentes for visning.
    MERK: På samme måte som CASE-uttrykk, vil COALESCE heller ikke evaluere argumentene til høyre for det første ikke-null-argumentet som ble funnet.
    Syntaks:

     COALESCE( value [, ......] )>
     Input: SELECT COALESCE(last_name, '- NA -') from Employee;>

    Produksjon:

    Forklaring: - NA - vil vises på stedet der etternavnet er null, ellers vises de respektive etternavnene. STØRST: Returnerer den største verdien fra en liste over et hvilket som helst antall uttrykk. Sammenligning skiller mellom store og små bokstaver. Hvis datatypene for alle uttrykkene i listen ikke er like, konverteres resten alle uttrykk til datatypen til det første uttrykket for sammenligning, og hvis denne konverteringen ikke er mulig, vil SQL gi en feil.
    MERK: Returnerer null hvis et uttrykk i listen er null.
    Syntaks:



     GREATEST( expr1, expr2 [, .....] )>
    •  Input: SELECT GREATEST('XYZ', 'xyz') from dual;>
       Output: GREATEST('XYZ', 'xyz') xyz>

      Forklaring: ASCII-verdien for små alfabeter er større.

    •  Input: SELECT GREATEST('XYZ', null, 'xyz') from dual; Output: GREATEST('XYZ', null, 'xyz') ->

      Forklaring: Siden null er tilstede derfor, vil null vises som utdata (som nevnt i beskrivelsen ovenfor).

    IFNULL: Hvis expr1 ikke er NULL, returnerer expr1; ellers returnerer den uttr2. Returnerer en numerisk eller strengverdi, avhengig av konteksten den brukes i.
    Syntaks:

     IFNULL( expr1, expr2 )>
    •  Input: SELECT IFNULL(1,0) FROM dual;>
       Output: - 1>

      Forklaring: Siden ingen uttrykk er null.

    •  Input: SELECT IFNULL(NULL,10) FROM dual; Output: -- 10>

      Forklaring: Siden expr1 er null, vises derfor expr2.

    IN: Sjekker om en verdi er tilstede innenfor et sett med verdier og kan brukes med WHERE, CHECK og opprettelse av visninger.
    MERK: På samme måte som CASE- og COALESCE-uttrykk, vil IN heller ikke evaluere argumentene til høyre for det første ikke-null-argumentet som ble funnet.
    Syntaks:

     WHERE column IN ( x1, x2, x3 [,......] )>
     Input: SELECT * from Employee WHERE department_id IN(50, 12);>

    Produksjon:

    Forklaring: Alle data til ansatte vises med avdelings-ID 50 eller 12.

    MINST: Returnerer den minste verdien fra en liste over et hvilket som helst antall uttrykk. Sammenligning skiller mellom store og små bokstaver. Hvis datatypene for alle uttrykkene i listen ikke er like, konverteres resten alle uttrykk til datatypen til det første uttrykket for sammenligning, og hvis denne konverteringen ikke er mulig, vil SQL gi en feil.
    MERK: Returnerer null hvis et uttrykk i listen er null.

    java samling rammeverk

    Syntaks:

     LEAST( expr1, expr2 [, ......] )>
    •  strong>Inndata: VELG MINST('XYZ', 'xyz') fra dual; Utdata: MINST('XYZ', 'xyz') XYZ>

      Forklaring: ASCII-verdien til store alfabeter er mindre.

    •  Input: SELECT LEAST('XYZ', null, 'xyz') from dual; Output: LEAST('XYZ', null, 'xyz') ->

      Forklaring: Siden null er tilstede derfor, vil null vises som utdata (som nevnt i beskrivelsen ovenfor).

    NULLIF: Returnerer en nullverdi hvis verdi1=verdi2, ellers returnerer den verdi1.
    Syntaks:

     NULLIF( value1, value2 )>

    Eksempel:

     Input: SELECT NULLIF(9995463931, contact_num) from Employee;>

    Produksjon:

Forklaring: NULL vises for den ansatte hvis nummer er matchet med det gitte nummeret. For resten av de ansatte returneres verdi1.