Questão de Banco de Dados — SQL Server — Quadrix 2025
- Código
- qg603660
- Banca
- Quadrix
- Órgão
- SEDF
- Ano
- 2025
- Nível
- Superior
- Cargo
- Professor de Educação Básica: Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). A cláusula WITH TIES, usada em conjunto com TOP, inclui (e não descarta) as linhas que possuem valores empatados com a última linha retornada, fazendo com que o número de registros retornados possa ser maior do que o valor especificado em TOP. O item inverte exatamente o efeito da cláusula.
A cláusula TOP no SQL Server limita o número de linhas retornadas por uma consulta. Quando usada sem WITH TIES, ela retorna exatamente o número de linhas especificado (ou menos, se não houver linhas suficientes). No entanto, quando combinada com WITH TIES, o comportamento muda: o SQL Server retorna todas as linhas que empatam com o último valor da ordenação, mesmo que isso ultrapasse o limite definido em TOP. Isso é útil para evitar que resultados com valores iguais sejam cortados arbitrariamente.
Por exemplo, considere a consulta:
SELECT TOP 3 nome, salario
FROM funcionarios
ORDER BY salario DESC;Se houver três funcionários com salário de R$ 10.000,00 e um quarto com R$ 9.000,00, a consulta retornará apenas os três primeiros (os de R$ 10.000,00). Mas se usarmos WITH TIES:
SELECT TOP 3 WITH TIES nome, salario
FROM funcionarios
ORDER BY salario DESC;O SQL Server retornará todos os funcionários com salário de R$ 10.000,00, mesmo que sejam mais de três, porque eles empatam com o último valor da ordenação (o terceiro lugar). Ou seja, o WITH TIES expande o resultado para incluir os empates, não o contrário.
A pegadinha da banca está em inverter o sentido da cláusula: ela afirma que WITH TIES descarta linhas empatadas, quando na verdade ela as inclui. Além disso, o item diz que isso garante que o número de registros seja "sempre exato", o que é falso — o número pode ser maior que o especificado em TOP.
A banca inverte o efeito da cláusula WITH TIES. O candidato que sabe que ela "inclui empates" marca ERRADO; o que não sabe, ou que confunde com TOP sem WITH TIES, pode marcar CERTO. Lembre-se: WITH TIES adiciona linhas empatadas, nunca remove.
A afirmação está incorreta porque WITH TIES inclui as linhas empatadas com a última linha retornada, e não as descarta. O número de registros retornados pode ser maior que o valor de TOP, não exato. O comportamento correto é: TOP n WITH TIES retorna no mínimo n linhas, mas pode retornar mais se houver empates no valor da ordenação.
Gabarito: ERRADO (letra E).
Link permanente: /questoes/qg603660