FC ConcursosFC Concursos

Questão FC90524

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’ w

Linguagem SQL

CEBRASPE (CESPE) · 2023

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’.
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Comentário: A assertiva correta seria:

"O script SQL será executado corretamente, pois a estrutura CASE é avaliada sequencialmente, garantindo que valores superiores a 40 sejam classificados corretamente como 'HIGH'."

Explicação:

O erro na afirmativa está na suposição de que valores acima de 40 não serão corretamente categorizados. No entanto, a estrutura CASE em SQL é processada de cima para baixo e para na primeira condição verdadeira.
  1. Como o CASE funciona?
    • Ele avalia cada condição em sequência.
    • Quando encontra a primeira condição verdadeira, retorna o valor correspondente e ignora as demais.
  2. Execução do script
    • Para wind_speed >= 40, a primeira condição é atendida, então 'HIGH' será atribuído.
    • Para wind_speed entre 30 e 39, a segunda condição será atendida e o valor será 'MODERATE'.
    • Qualquer outro valor resultará em 'LOW'.
  3. Código correto
    • O trecho SQL já está corretamente estruturado:
      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;
    • Valores superiores a 40 sempre serão corretamente categorizados como 'HIGH', pois a condição wind_speed >= 40 vem antes da wind_speed >= 30.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo