top of page

SELECT TOP com WITH TIES no SQL Server

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 2 de jun.
  • 1 min de leitura

Quando você usa o comando SELECT TOP no SQL Server, está dizendo à engine: “traga apenas os primeiros registros dessa consulta, com base em uma ordenação”. Mas o que acontece se houver empates no valor de ordenação? É aí que entra o poderoso WITH TIES 🤩


A cláusula WITH TIES serve para incluir todos os registros que tenham o mesmo valor no critério de ordenação do último registro retornado pelo TOP.


Imagine que vários alunos tiraram a mesma nota final. Se você quiser exibir os "Top 5 melhores alunos" mas não excluir alguém apenas por empate na nota, o WITH TIES garante justiça e transparência.


Exemplo SEM o WITH TIES


select top 5 *

from notas

where nota >= 7.0


Esse comando retorna apenas 5 registros, mesmo que existam outros alunos com a mesma nota do quinto colocado.


Top 5 com WITH TIES. Na base de exemplo, existem 3 alunos com nota 7.10 e com isso, o retorno será as 5 primeiras maiores notas trazendo todo o grupo conforme exemplo abaixo:


select top 5 WITH TIES *

from notas

where nota >= 7.0

order by  nota DESC


Esse comando ainda seleciona os 5 primeiros registros com maior nota, mas também adiciona quaisquer outros registros que estejam empatados na mesma nota do último da lista.



O WITH TIES só funciona corretamente quando há uma cláusula ORDER BY, já que ele precisa de um critério claro para saber onde há empate.

Posts recentes

Ver tudo

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page