16. Il linguaggio SQL Vers. 11.2 – Febbraio 2026
21) Funzioni condizionali in MySQL: CASE, IF, IFNULL e NULLIF
CASE( Mediante il costrutto CASE... WHEN è possibile creare delle istruzioni condizionali piuttosto complesse prevedendo non solo un ' unica condizione, ma una serie di condizioni alternative)
SELECT CASE id WHEN 1 THEN ' primo ' WHEN 2 THEN ' secondo ' ELSE‘ altro’ END FROM Tabella;
Risultato:
+------------------------------------------------------------------------ +
| primo | | secondo | | altro | +------------------------------------------------------------------------ +
IF( La funzione IF è più semplice di CASE e consente di verificare un ' unica condizione. La funzione prevede tre argomenti: il primo è l ' espressione da verificare, il secondo è il risultato restituito in caso in cui l ' espressione sia vera, il terzo il risultato da restituire nel caso l ' espressione sia falsa)
SELECT id, nome, prezzo, IF(( prezzo > 100.00 AND prezzo < 200.00),' Medio Alto ',' Scarto ') AS valutazione FROM Tabella;
Risultato:
+---- +---------- +-------- +------------- + | id | nome | prezzo | valutazione | +---- +---------- +-------- +------------- + | 1 | pippo | 44.25 | Scarto | | 2 | pluto | 144.75 | Medio Alto | | 3 | paperino | 200.00 | Scarto | +---- +---------- +-------- +------------- +
IFNULL( La funzione IFNULL intercetta eventuali errori del MySQL( che restituisce NULL) e li gestisce in modo predeterminato. La funzione ISNULL accetta due parametri: il primo è il dato da verificare, il secondo è il risultato da restituire qualora il primo argomento sia NULL)
SELECT id, nome, note, IFNULL( note,' Questo campo è a NULL ') AS‘ Esito IF’ FROM Tabella;
Risultato:
+---- +---------- +----------------------- +-------------------------------------- + | id | nome | note | Esito IF | +---- +---------- +----------------------- +-------------------------------------- + | 1 | pippo | NULL | Questo campo è a NULL | 2 | pluto | praticamente un pazzo | praticamente un pazzo | | 3 | paperino | NULL | Questo campo è a NULL +---- +---------- +----------------------- +-------------------------------------- +
NULLIF( Questa funzione accetta due argomenti che vengono confrontati tra loro; se sono uguali restituisce NULL in caso contrario restituisce il primo argomento)
SELECT * INTO newtab FROM Tabella AS t1, Tabella AS t2;
Risultato:
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 85