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