1.1 Elenco delle funzioni condizionali

Il linguaggio SQL ha un elenco di funzioni che sono in qualche modo simili all'operatore if-elsein switchJava.

Ci sono 4 di queste funzioni in totale:

Funzioni Descrizione
1 CASO interruttore analogico
2 SE() Un analogo dell'operatore ternario o if-else
3 SENULL() analogo di if-else
4 NULLIF() analogo di if-else

Gli ultimi tre in SQL sono rappresentati come funzioni ed CASEè un operatore a tutti gli effetti, quindi lo considereremo separatamente alla fine.

1.2 Funzione SE()

Una funzione IF()in SQL è in qualche modo simile a un operatore ternario in Java. Nel linguaggio SQL, prende 3 parametri e assomiglia a questo:

IF (condition, true, false)

Tre espressioni devono essere passate alla funzione IF:

  • una condizione che è testata per la verità;
  • un'espressione che viene restituita quando la condizione è vera;
  • un'espressione che viene restituita quando la condizione è falsa.

Di seguito fornirò alcuni esempi per rendere più facile la comprensione del funzionamento:

Richiesta Risultato
1 SELEZIONA SE( 1>2 , 2, 3) 3
2 SELEZIONA SE( 1<2 , 'sì', 'no') 'SÌ'
3 SELEZIONA SE( STRCMP('test','test1' ), 'no', 'sì') 'NO'

1.3 Funzione IFNULL() e NULLIF()

Ci sono anche due modifiche della funzione IF().

La prima modifica è la funzione IFNULL(). Prende solo due valori:

IFNULL (expression 1, expression 2)

Se expression1 non è uguale a NULL, la funzione restituirà expression1 . Se expression1 IS NULL, la funzione restituirà expression2 . L'essenza è la sostituzione del valore predefinito quando il campo è uguale a NULL.

La seconda modifica della funzione IFè la funzione NULLIF(), anch'essa assume due valori:

NULLIF (expression 1, expression 2)

Funziona nella direzione opposta:

  • se expression1 è uguale a expression2 , la funzione restituisce NULL;
  • se le espressioni non sono uguali, viene restituito expression1 .