1.1 Lista funcțiilor condiționate
Limbajul SQL are o listă de funcții care sunt oarecum similare cu operatorul if-elsedin switchJava.
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 CASEsunt 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 IFeste 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