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 .
GO TO FULL VERSION