1.1 Elenco delle funzioni condizionali
Il linguaggio SQL ha un elenco di funzioni che sono in qualche modo simili all'operatore if-else
in switch
Java.
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