Considere a seguinte consulta feita em SQL padrão:SELECT TipoFROM CatálogoWHERE Tipo IN (‘gde’, ‘médio’, ‘pequeno’)Uma consulta SQL equivalente é:
ASELECT TipoFROM CatálogoWHERE Tipo = ‘gde’ AND Tipo = ‘médio’ AND Tipo = ‘pequeno’
BSELECT TipoFROM CatálogoGROPU BY Tipo
CSELECT TipoFROM CatálogoWHERE Tipo = ‘gde’ OR Tipo = ‘médio’ OR Tipo = ‘pequeno’
DSELECT TipoFROM CatálogoWHERE Tipo BETWEEN (‘pequeno’, ‘médio’, ‘gde’)
ESELECT TipoFROM CatálogoHAVING Tipo LIKE (‘gde’, ‘médio’, ‘pequeno’)
Revelar gabarito e comentário▾
GabaritoC — SELECT Tipo
FROM Catálogo
WHERE Tipo = ‘gde’ OR Tipo = ‘médio’ OR Tipo = ‘pequeno’
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”.
SQL: Operador IN e sua equivalência com OR
Gabarito: letra C. O operador IN no SQL testa se um valor está presente em uma lista de valores, funcionando como uma série de condições unidas por OR. A alternativa C reproduz exatamente essa lógica: Tipo = 'gde' OR Tipo = 'médio' OR Tipo = 'pequeno'.
A banca testa o conhecimento da equivalência entre IN e OR. O conteúdo de apoio explica que "o operador IN permite especificar múltiplos valores para uma condição... equivale a uma operação com múltiplas cláusulas OR". A pegadinha comum é confundir IN com AND, mas IN é uma disjunção, não uma conjunção.
Alternativa A — ❌ Incorreta
Usa AND entre as três condições. Isso exigiria que um mesmo registro tivesse Tipo igual a 'gde', 'médio' e 'pequeno' simultaneamente, o que é impossível. Não retorna nenhuma linha, portanto não equivale ao IN.
Alternativa B — ❌ Incorreta
GROUP BY é uma cláusula de agrupamento, usada com funções de agregação. Aqui não há agregação nem filtro; a consulta não seleciona registros com base nos valores de Tipo. Além disso, a sintaxe foi digitada como "GROPU BY" (erro de digitação), mas mesmo corrigida não seria equivalente.
Alternativa C — ✅ Correta ⟵ GABARITO
A cláusula WHERE Tipo = 'gde' OR Tipo = 'médio' OR Tipo = 'pequeno' retorna todos os registros cujo Tipo seja exatamente um dos três valores. É a tradução direta do IN.
Alternativa D — ❌ Incorreta
BETWEEN é usado para intervalos contínuos (numéricos ou alfabéticos), não para listas discretas. A sintaxe BETWEEN ('pequeno', 'médio', 'gde') é inválida; BETWEEN espera dois valores (limite inferior e superior).
Alternativa E — ❌ Incorreta
HAVING é utilizado com GROUP BY para filtrar grupos, não registros individuais. LIKE é para correspondência de padrões em strings, não aceita uma lista de valores. A sintaxe também está incorreta (LIKE ('gde', 'médio', 'pequeno') não é válida).
NÃO CAIA NESSA!
A banca troca o operador lógico: IN equivale a uma série de OR (qualquer um), não de AND (todos). O candidato pode cair na alternativa A se pensar que IN exige que o registro atenda a todas as condições, mas na verdade basta uma. Lembre-se: IN = vários OR.