Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2023

Banco de DadosSQL
Código
ce160960
Banca
CESPE / CEBRASPE
Órgão
SEPLAN-RR
Ano
2023
Nível
Superior
Cargo
Analista de Planejamento e Orçamento - Especialidade: Tecnologia da Informação
Com pertinência à linguagem SQL, julgue o item abaixo.Considere-se o seguinte script SQL.select report_code, year, month, day,wind_speed,casewhen wind_speed>= 40 then ‘HIGH’when wind_speed>= 30 then ‘MODERATE’else ‘LOW’end as wind_severityfrom station_dataO 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’.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Linguagem SQL – Cláusula CASE

Gabarito: Errado (E). O script SQL está correto e não produz erro. A cláusula CASE avalia as condições na ordem em que são escritas: a primeira condição verdadeira determina o resultado. Assim, se wind_speed >= 40, retorna 'HIGH'; caso contrário, testa >= 30 e retorna 'MODERATE'; e, se nenhuma for verdadeira, retorna 'LOW'. O comportamento é perfeitamente determinístico.

  1. 1wind_speed >= 40?
  2. 2Se sim → 'HIGH' (para)
  3. 3Se não → wind_speed >= 30?
  4. 4Se sim → 'MODERATE' (para)
  5. 5Se não → 'LOW'
LEVEL · soulevel.com.br

Análise item a item

A banca afirma que, se houver valor superior a 40, não será possível predizer o valor de wind_severity. Isso é incorreto. O comando CASE funciona como uma estrutura sequencial:

  • Primeiro verifica wind_speed >= 40: se verdadeiro, resultado é 'HIGH' e a avaliação para.

  • Se falso, verifica wind_speed >= 30: se verdadeiro, resultado é 'MODERATE'.

  • Caso contrário, resultado é 'LOW'.

Não há ambiguidade: registros com wind_speed = 50, por exemplo, atendem à primeira condição e recebem 'HIGH'. Registros com 35 atendem apenas à segunda e recebem 'MODERATE'. Registros com 20 recebem 'LOW'. A ordem garante exclusividade e previsibilidade.

PEGA ESSA DICA!

Em SQL, a cláusula CASE é avaliada na ordem das condições. A primeira condição verdadeira interrompe a avaliação. Isso é similar a um if-else if-else em linguagens de programação. Lembre-se: a ordem das condições importa!

Gabarito: Errado (E).

Link permanente: /questoes/ce160960