Istruzione SQL Case quando il valore è nullo

Istruzione Sql Case Quando Il Valore E Nullo



L'esecuzione condizionale si riferisce alla capacità di eseguire un blocco di codice solo se viene soddisfatta una condizione specifica. È un'operazione diffusa in fase di sviluppo. Ad esempio, il modo più comune per ottenere un'esecuzione condizionale in SQL è utilizzare l'istruzione CASE.

L'istruzione CASE ci consente di eseguire la logica condizionale controllando il valore di una o più colonne in una tabella e quindi eseguendo uno specifico blocco di codice basato sul risultato di tale controllo.







Questo tutorial ci insegna come usare l'istruzione CASE se un dato valore è NULL.



Dichiarazione caso SQL

Quanto segue mostra la sintassi dell'istruzione CASE in SQL:



Espressione CASO
WHEN valore_1 THEN risultato_1
WHEN valore_2 THEN risultato_2
...
ELSE default_result
FINE


Considera il seguente esempio:





creare tavolo studenti (
id int auto_increment non chiave primaria nulla,
nome varchar ( cinquanta ) ,
science_score int non nullo,
math_score int non nullo,
history_score int non nullo,
altro int non nullo
) ;
INSERIRE NEGLI studenti ( name, science_score, math_score, history_score, other )
VALORI
( 'Giovanni Rossi' , 80 , 70 , 90 , 85 ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 ) ;


Ad esempio, possiamo utilizzare l'istruzione CASE per valutare le varie opzioni e restituire un'azione specifica come dimostrato nell'esempio seguente:

SELEZIONARE
nome,
punteggio_scientifico,
punteggio_matematico,
punteggio_storia,
altro,
CASO
QUANDO ( science_score + math_score + history_score + other ) / 4 > = 90 POI 'UN'
QUANDO ( science_score + math_score + history_score + other ) / 4 > = 80 POI 'B'
QUANDO ( science_score + math_score + history_score + other ) / 4 > = 70 POI 'C'
QUANDO ( science_score + math_score + history_score + other ) / 4 > = 60 POI 'D'
ALTRO 'F'
FINE COME 'Grado'
DA studenti;


Uscita risultante:



Istruzione SQL Case quando il valore è nullo

Possiamo usare l'istruzione CASE per eseguire un blocco di codice quando abbiamo a che fare con valori nulli. Inoltre, possiamo utilizzare gli operatori IS NULL e IS NOT Null per valutare i valori NULL ed eseguire un'azione specifica in base al valore restituito.

Si consideri il seguente esempio di sintassi:

SELEZIONARE
CASO
WHEN nome_colonna È NULL THEN 'Il valore è nullo'
ALTRO 'Il valore non è nullo'
FINE COME risultato
FROM nome_tabella;


In questo caso, controlliamo se il valore del nome_colonna fornito è nullo. Se vero, restituiamo 'Il valore è nullo'. corda. Altrimenti, se il valore non è nullo, restituiamo 'Valore non nullo'. corda.

Usiamo anche la parola chiave AS come alias per la stringa di risultato.

Considera la seguente tabella di esempio:

INSERIRE NEGLI studenti ( name, science_score, math_score, history_score, other, temp )
VALORI
( 'Giovanni Rossi' , 80 , 70 , 90 , 85 , nullo ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 , nullo ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 , 'T' ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 , 'S' ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 , nullo ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 , nullo ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 , 'nullo' ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 , '' ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 , nullo ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 , 'UN' ) ;


Possiamo quindi stampare un messaggio specifico per i valori null utilizzando l'istruzione CASE.

Selezionare nome, temp,
CASO
QUANDO temp È NULL ALLORA 'Il valore è nullo'
ALTRO 'Il valore non è nullo'
FINE COME risultato
DA studenti s ;


Produzione:

Conclusione

Abbiamo imparato a lavorare con l'istruzione SQL CASE per valutare una condizione specifica ed eseguire un'attività richiesta in base al valore risultante.