Com pertinência à linguagem SQL, julgue o item abaixo.Consid...

Próximas questões
Com base no mesmo assunto
Q2040741 Banco de Dados

Com pertinência à linguagem SQL, julgue o item abaixo.


Considere-se o seguinte script SQL.


select report_code, year, month, day,

wind_speed,

case

     when wind_speed>= 40 then ‘HIGH’

     when wind_speed>= 30 then ‘MODERATE’

else ‘LOW’

end as wind_severity

from station_data



O resultado da execução do script resultará em erro, pois, caso haja, na tabela station_data, algum registro no campo wind_speed com valor superior a 40, não será possível predizer se o valor da variável wind_severity será igual a ‘HIGH’. 

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: E - errado

Tema Central: A questão aborda a utilização da cláusula CASE em uma consulta SQL. Essa cláusula é utilizada para criar condições que retornam valores específicos com base em determinados critérios.

Para resolver essa questão, é necessário entender como a lógica condicional funciona no SQL, especialmente na cláusula CASE. Nesse contexto, o script está sendo utilizado para classificar a severidade do vento com base na velocidade do vento (wind_speed).

Explicação Detalhada da Alternativa Correta (E - Errado):

O enunciado sugere que o script resultaria em erro se houvesse valores de wind_speed superiores a 40 porque não seria possível prever o valor de wind_severity como 'HIGH'. No entanto, isso é um equívoco. O uso da cláusula CASE, conforme exibido no script, é perfeitamente válido.

A lógica do CASE no SQL funciona da seguinte forma:

  • when wind_speed >= 40 then ‘HIGH’: Se a velocidade do vento for maior ou igual a 40, wind_severity será 'HIGH'.
  • when wind_speed >= 30 then ‘MODERATE’: Se a velocidade do vento for maior ou igual a 30, mas menor que 40, wind_severity será 'MODERATE'.
  • else ‘LOW’: Se a velocidade do vento for menor que 30, wind_severity será 'LOW'.

É importante ressaltar que o script não gera erro e a lógica é clara: o primeiro when que for verdadeiro é aplicado, e as condições são verificadas em ordem. Portanto, qualquer valor acima de 40 será classificado corretamente como 'HIGH'.

Por que a Alternativa C (certo) está Incorreta:

A alternativa C está incorreta porque a premissa do enunciado é falha. A ideia de que o script resultaria em erro está errada, já que a cláusula CASE é implementada corretamente e não gera ambiguidade quanto à classificação dos valores de wind_speed.

Conclusão:

A lógica usada no script SQL é correta e não resultará em erro. A tabela station_data poderá ter registros com wind_speed superiores a 40, e isso será devidamente categorizado como 'HIGH'.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

qualquer valor igual ou superior a 40 será respondido como 'HIGH', e os valores entre 30 e 39 serão 'MODERATE'. Portanto não haverá erro...!

O que aparece no resultado da consulta é o primeiro CASE a ser satisfeito.

Errado. O script apresentado não resultará em erro, pois a cláusula "CASE" é usada para definir condições e valores de retorno que são aplicados à coluna "wind_speed". Se houver um registro na tabela "station_data" com um valor de "wind_speed" superior a 40, ele será classificado como "HIGH".

Na cláusula "CASE", as condições são testadas na ordem em que são escritas. Se uma condição é atendida, o valor de retorno associado é retornado e o resto das condições é ignorado. No caso apresentado, se o valor de "wind_speed" for igual ou maior que 40, o resultado será "HIGH", caso contrário, se o valor de "wind_speed" for igual ou maior que 30, o resultado será "MODERATE". Caso nenhuma dessas condições seja atendida, o resultado será "LOW".

Resposta: Errado.

O script não dá erro porque a cláusula "CASE" define condições e valores para a coluna "wind_speed".

Se tiver um registro com "wind_speed" maior que 40, será "HIGH".

- Cláusula "CASE" aplica condições e valores à coluna "wind_speed".

- Condições são testadas na ordem escrita.

- Se "wind_speed" >= 40, resultado é "HIGH".

- Se não, se "wind_speed" >= 30, resultado é "MODERATE".

- Se não, resultado é "LOW".

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo