Uma equipe de fiscalização deseja gerar um relatório priorizando contribuintes cujo volume de NF-e emitidas seja atípico. A tabela nfe contém, entre outras, as colunas contribuinte id e qtd_emitidas. Deseja-se listar os contribuintes cuja quantidade emitida no mês seja maior que 5000 ou menor que 10, ordenando a saída do maior para o menor valor de qtd_emitidas. O comando SQL que atende ao requisito é:SELECT contribuinte_id,
Aqtd_emitidas FROM nfe WHERE qtd_emitidas > 5000 OR qtd_emitidas < 10 ORDER BY qtd_emitidas DESC;
Bqtd_emitidas FROM nfe WHERE NOT (qtd_emitidas > 5000 OR qtd_emitidas < 10) ORDER BY qtd_emitidas DESC;
Cqtd emitidas FROM nfe WHERE qtd_emitidas > 5000 AND qtd_emitidas < 10 ORDER BY qtd_emitidas DESC;
DMAX (qtd_emitidas) AS qtd emitidas FROM nfe WHERE qtd_emitidas > 5000 OR qtd_emitidas < 10 GROUP BY contribuinte id;
Eqtd emitidas FROM nfe WHERE qtd_emitidas BETWEEN 10 AND 5000 ORDER BY qtd_emitidas;
Revelar gabarito e comentário▾
GabaritoA — qtd_emitidas FROM nfe WHERE qtd_emitidas > 5000 OR qtd_emitidas < 10 ORDER BY qtd_emitidas DESC;
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: Filtro e Ordenação com WHERE e ORDER BY
Gabarito: letra A. A consulta correta para listar contribuintes cuja quantidade emitida é maior que 5000 OU menor que 10, ordenando do maior para o menor, utiliza a cláusula WHERE com operador OR e ORDER BY ... DESC. A alternativa A é a única que respeita a sintaxe SQL padrão e atende exatamente ao requisito.
A banca testa o conhecimento dos operadores lógicos (OR, AND, NOT) e da cláusula ORDER BY. O enunciado pede expressamente "maior que 5000 ou menor que 10" – um intervalo aberto, complementar ao intervalo fechado BETWEEN 10 AND 5000. Portanto, a condição correta é qtd_emitidas > 5000 OR qtd_emitidas < 10.
Alternativa A — ✅ Correta ⟵ GABARITO
Apresenta a sintaxe exata: SELECT contribuinte_id, qtd_emitidas FROM nfe WHERE qtd_emitidas > 5000 OR qtd_emitidas < 10 ORDER BY qtd_emitidas DESC;.
Filtra corretamente os valores atípicos (acima de 5000 ou abaixo de 10).
Ordena do maior para o menor (DESC).
Não possui erros de sintaxe (vírgula entre colunas, nome de coluna sem espaços).
Alternativa B — ❌ Incorreta
Usa WHERE NOT (qtd_emitidas > 5000 OR qtd_emitidas < 10). Aplicando a lei de De Morgan, isso equivale a WHERE qtd_emitidas <= 5000 AND qtd_emitidas >= 10, ou seja, o intervalo normal (entre 10 e 5000 inclusive). É exatamente o oposto do que se deseja.
Alternativa C — ❌ Incorreta
Usa WHERE qtd_emitidas > 5000 AND qtd_emitidas < 10. Essa condição nunca é verdadeira porque nenhum número pode ser simultaneamente maior que 5000 e menor que 10. O operador correto deveria ser OR.
Alternativa D — ❌ Incorreta
Além de conter um espaço no alias (qtd emitidas – inválido), utiliza a função de agregação MAX e GROUP BY contribuinte id. Isso agruparia os dados e retornaria apenas o máximo por contribuinte, não a lista de todas as linhas. A questão não pede agregação, apenas listagem com filtro.
Alternativa E — ❌ Incorreta
Usa WHERE qtd_emitidas BETWEEN 10 AND 5000, que seleciona o intervalo normal (inclusive os extremos). O enunciado pede os valores fora desse intervalo (maior que 5000 ou menor que 10). Além disso, falta o DESC para ordenação decrescente (a ordenação padrão é crescente).
NÃO CAIA NESSA!
A banca explora a confusão entre operadores lógicos. O candidato pode ser tentado a usar BETWEEN (alternativa E) ou inverter a condição com NOT (alternativa B). Lembre-se: "maior que OU menor que" é uma disjunção – use OR. O complemento desse intervalo é BETWEEN, mas o enunciado pede exatamente os valores atípicos.