Instrução SQL Case quando o valor é nulo

Instrucao Sql Case Quando O Valor E Nulo



A execução condicional refere-se à capacidade de executar um bloco de código somente se uma condição específica for atendida. É uma operação generalizada em desenvolvimento. Por exemplo, a maneira mais comum de obter uma execução condicional em SQL é usar a instrução CASE.

A instrução CASE nos permite executar a lógica condicional verificando o valor de uma ou mais colunas em uma tabela e, em seguida, executando um bloco de código específico com base no resultado dessa verificação.







Este tutorial nos ensina como usar a instrução CASE se um determinado valor for NULL.



Instrução de Caso SQL

Veja a seguir a sintaxe da instrução CASE no SQL:



expressão CASE
QUANDO valor_1 ENTÃO resultado_1
QUANDO valor_2 ENTÃO resultado_2
...
ELSE default_result
FIM


Considere o seguinte exemplo:





criar estudantes de mesa (
eu ia int auto_increment não nulo chave primária,
nome varchar ( cinquenta ) ,
science_score int não nulo,
math_score int não nulo,
history_score int não nulo,
outro int não nulo
) ;
INSERT INTO alunos ( nome, science_score, math_score, history_score, outro )
VALORES
( '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 ) ;


Por exemplo, podemos usar a instrução CASE para avaliar as várias opções e retornar uma ação específica conforme demonstrado no exemplo a seguir:

SELECIONE
nome,
pontuação_científica,
math_score,
histórico_pontuação,
outro,
CASO
QUANDO ( science_score + math_score + history_score + outro ) / 4 > = 90 ENTÃO 'A'
QUANDO ( science_score + math_score + history_score + outro ) / 4 > = 80 ENTÃO 'B'
QUANDO ( science_score + math_score + history_score + outro ) / 4 > = 70 ENTÃO 'C'
QUANDO ( science_score + math_score + history_score + outro ) / 4 > = 60 ENTÃO 'D'
OUTRO 'F'
TERMINAR COMO 'Nota'
DE alunos;


Saída resultante:



Instrução SQL Case quando o valor é nulo

Podemos usar a instrução CASE para executar um bloco de código ao lidar com valores nulos. Além disso, podemos usar os operadores IS NULL e IS NOT Null para avaliar valores NULL e executar uma ação específica com base no valor retornado.

Considere o seguinte exemplo de sintaxe:

SELECIONE
CASO
QUANDO nome_da_coluna É NULO ENTÃO 'Valor é nulo'
OUTRO 'Valor não é nulo'
END AS resultado
FROM nome_da_tabela;


Nesse caso, verificamos se o valor do column_name fornecido é nulo. Se verdadeiro, retornamos o “Valor é nulo”. corda. Caso contrário, se o valor não for nulo, retornamos o “Valor não é nulo”. corda.

Também usamos a palavra-chave AS como um alias para a string de resultado.

Considere a seguinte tabela de exemplo:

INSERT INTO alunos ( nome, science_score, math_score, history_score, outro, temp )
VALORES
( 'John Doe' , 80 , 70 , 90 , 85 , nulo ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 , nulo ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 , 't' ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 , 's' ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 , nulo ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 , nulo ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 , 'nulo' ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 , '' ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 , nulo ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 , 'a' ) ;


Podemos então imprimir uma mensagem específica para valores nulos usando a instrução CASE.

selecionar nome, temperatura,
CASO
QUANDO a temperatura É NULA ENTÃO 'Valor é nulo'
OUTRO 'Valor não é nulo'
END AS resultado
DE alunos ;


Saída:

Conclusão

Aprendemos como trabalhar com a instrução SQL CASE para avaliar uma condição específica e executar uma tarefa necessária com base no valor resultante.