Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — Quadrix 2025

Banco de DadosSQL Server
Código
qg603660
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
Acerca das linguagens de definição e manipulação de dados, dos conceitos e comandos SQL SERVER e DB2 e dos bancos de dados textuais, julgue o item a seguir. No SQL Server, a cláusula WITH TIES usada em conjunto com TOP descarta linhas que possuem valores empatados com a última linha retornada, garantindo que o número de registros seja sempre exato.
  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”.

Cláusula WITH TIES no SQL Server

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.

NÃO CAIA NESSA!

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.

TOP n
  • 1Sem WITH TIES
    • Retorna exatamente n linhas
  • 2Com WITH TIES
    • Inclui empates com a última linha
    • Pode retornar mais que n
LEVEL · soulevel.com.br

Item — ❌ ERRADO

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