Declaració de cas SQL quan el valor és nul

Declaracio De Cas Sql Quan El Valor Es Nul



L'execució condicional es refereix a la capacitat d'executar un bloc de codi només si es compleix una condició específica. És una operació molt estesa en desenvolupament. Per exemple, la manera més habitual d'aconseguir una execució condicional en SQL és utilitzar la instrucció CASE.

La instrucció CASE ens permet realitzar la lògica condicional comprovant el valor d'una o més columnes en una taula i després executant un bloc de codi específic basat en el resultat d'aquesta comprovació.







Aquest tutorial ens ensenya com utilitzar la instrucció CASE si un valor donat és NULL.



Declaració de cas SQL

A continuació es mostra la sintaxi de la instrucció CASE en SQL:



Expressió CASE
QUAN valor_1 THEN resultat_1
QUAN valor_2 THEN resultat_2
...
ELSE default_result
FINAL


Considereu l'exemple següent:





crear taula estudiants (
id int auto_increment no clau primària nul·la,
nom varchar ( 50 ) ,
science_score int no nul,
math_score int no nul,
history_score int no nul,
altre int no nul
) ;
INSERTAR EN Alumnes ( nom, puntuació_ciència, puntuació_matemàtiques, puntuació_historial, un altre )
VALORS
( 'John Doe' , 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 ) ;


Per exemple, podem utilitzar la instrucció CASE per avaluar les diferents opcions i retornar una acció específica tal com es mostra a l'exemple següent:

SELECCIONA
nom,
puntuació_ciència,
puntuació_matemàtiques,
puntuació_historial,
altres,
CAIXA
QUAN ( puntuació_ciència + puntuació_matemàtiques + puntuació_història + un altre ) / 4 > = 90 LLAVORS 'A'
QUAN ( puntuació_ciència + puntuació_matemàtiques + puntuació_història + un altre ) / 4 > = 80 LLAVORS 'B'
QUAN ( puntuació_ciència + puntuació_matemàtiques + puntuació_història + un altre ) / 4 > = 70 LLAVORS 'C'
QUAN ( puntuació_ciència + puntuació_matemàtiques + puntuació_història + un altre ) / 4 > = 60 LLAVORS 'D'
ALTRES 'F'
ACABAR COM 'Grau'
D'estudiants;


Sortida resultant:



Declaració de cas SQL quan el valor és nul

Podem utilitzar la instrucció CASE per executar un bloc de codi quan tractem amb valors nuls. A més, podem utilitzar els operadors IS NULL i IS NOT Null per avaluar els valors NULL i realitzar una acció específica basada en el valor retornat.

Considereu el següent exemple de sintaxi:

SELECCIONA
CAIXA
QUAN nom_columna ÉS NULL THEN 'El valor és nul'
ALTRES 'El valor no és nul'
ACABAR COM resultat
FROM nom_taula;


En aquest cas, comprovem si el valor del nom_columna proporcionat és nul. Si és cert, retornem el 'Valor és nul'. corda. En cas contrari, si el valor no és nul, retornem el 'Valor no és nul'. corda.

També fem servir la paraula clau AS com a àlies per a la cadena de resultats.

Considereu la següent taula d'exemple:

INSERTAR EN Alumnes ( nom, puntuació_ciència, puntuació_matemàtiques, puntuació_historial, altre, temp )
VALORS
( 'John Doe' , 80 , 70 , 90 , 85 , nul ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 , nul ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 , 't' ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 , 's' ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 , nul ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 , nul ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 , 'nul' ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 , '' ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 , nul ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 , 'a' ) ;


A continuació, podem imprimir un missatge específic per a valors nuls mitjançant la instrucció CASE.

seleccionar nom, temperatura,
CAIXA
QUAN LA temperatura ÉS NULLA LLAVORS 'El valor és nul'
ALTRES 'El valor no és nul'
ACABAR COM resultat
D'alumnes s ;


Sortida:

Conclusió

Hem après a treballar amb la instrucció SQL CASE per avaluar una condició específica i realitzar una tasca requerida en funció del valor resultant.