Questão nº 49
Questão de Tecnologia da Informação · FCC SEGEP-MA 2018 (nº 49)
Um Programador de Sistemas recuperou todos os dados dos países `Brasil`, `Argentina` e `Peru` gravados no campo `Pais` da tabela `Cliente`, abaixo especificada:
Tabela `Cliente`:
`IdCliente`
`NomeCliente`
`Endereco`
`CEP`
`Cidade`
`SiglaUF`
`Pais`
A sintaxe SQL correta que ele usou para realizar essa atividade foi `SELECT * FROM Cliente`
- A`WHERE Pais IN ('Argentina', 'Peru', 'Brasil');` (alternativa correta)
- B`WHEN Pais = ('Argentina', 'Peru', 'Brasil');`
- C`WHERE Pais = ('Argentina', 'Peru', 'Brasil');`
- D`WHEN Pais IN ('Argentina', 'Peru', 'Brasil');`
- E`WHERE Pais BETWEEN ('Argentina', 'Peru', 'Brasil');`
Resposta comentada
Gabarito Alternativa A
Para selecionar dados com base em várias opções para um mesmo campo, usamos a cláusula WHERE para filtrar os registros e o operador IN para especificar uma lista de valores possíveis.
- (A) Correta: A cláusula
WHEREé usada para filtrar linhas que atendem a uma condição, e o operadorINé a forma correta de verificar se o valor de uma coluna (Pais) corresponde a qualquer um dos valores listados entre parênteses. - (B) Incorreta:
WHENé uma palavra-chave usada em conjunto comCASEpara definir condições, não para filtrar registros diretamente em uma cláusulaSELECT. Além disso, o operador=não pode ser usado para comparar um único valor com uma lista de valores. - (C) Incorreta: Embora
WHEREseja a cláusula correta para filtrar, o operador=não pode ser usado para comparar um único valor (Pais) com uma lista de valores (('Argentina', 'Peru', 'Brasil')). Essa é a armadilha da banca: o uso deWHEREpode levar o aluno a pensar que a sintaxe está quase correta, mas o operador=exige uma comparação com um único valor, não com um conjunto. Para comparar com um conjunto de valores, o operador correto éIN. - (D) Incorreta: Assim como na alternativa B,
WHENnão é a palavra-chave correta para filtrar registros em uma cláusulaSELECT. - (E) Incorreta: O operador
BETWEENé usado para selecionar valores dentro de um intervalo (por exemplo,BETWEEN valor_inicial AND valor_final), e não para verificar se um valor está contido em uma lista de valores discretos. A sintaxe fornecida com uma lista paraBETWEENé inválida.
Fonte: FCC SEGEP-MA 2018 Analista Executivo - Programador de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.