1.1 Lista funcțiilor condiționate
Limbajul SQL are o listă de funcții care sunt oarecum similare cu operatorul if-else
din switch
Java.
Există 4 astfel de funcții în total:
Funcții | Descriere | |
---|---|---|
1 | CAZ | comutator analogic |
2 | DACĂ() | Un analog al operatorului ternar sau if-else |
3 | IFNULL() | analog cu dacă-altfel |
4 | NULLIF() | analog cu dacă-altfel |
Ultimele trei în SQL sunt reprezentate ca funcții și CASE
sunt un operator cu drepturi depline, așa că îl vom lua în considerare separat la sfârșit.
1.2 Funcția IF().
O funcție IF()
în SQL este oarecum similară cu un operator ternar din Java. În limbajul SQL, este nevoie de 3 parametri și arată astfel:
IF (condition, true, false)
Trei expresii trebuie transmise funcției IF
:
- o condiție care este testată pentru adevăr;
- o expresie care este returnată atunci când condiția este adevărată;
- o expresie care este returnată atunci când condiția este falsă.
Mai jos voi da câteva exemple pentru a face mai ușor de înțeles cum funcționează:
Cerere | Rezultat | |
---|---|---|
1 | SELECTAȚI DACĂ( 1>2 , 2, 3) | 3 |
2 | SELECTAȚI DACĂ( 1<2 , „da”, „nu”) | 'da' |
3 | SELECTARE DACA( STRCMP('test','test1' ), 'nu', 'da') | 'Nu' |
1.3 Funcția IFNULL() și NULLIF()
Există, de asemenea, două modificări ale funcției IF()
.
Prima modificare este funcția IFNULL()
. Este nevoie doar de două valori:
IFNULL (expression 1, expression 2)
Dacă expresia1 nu este egală cu NULL
, atunci funcția va returna expresia1 . Dacă expresie1, IS NULL,
atunci funcția va returna expresie2 . Esența este înlocuirea valorii implicite atunci când câmpul este egal cu NULL
.
A doua modificare a funcției IF
este funcția NULLIF()
, aceasta ia și două valori:
NULLIF (expression 1, expression 2)
Funcționează în direcția opusă:
- dacă expresia1 este egală cu expresia2 , atunci funcția revine
NULL
; - dacă expresiile nu sunt egale, atunci expresia1 este returnată .
GO TO FULL VERSION