Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como usar o Top with Ties no SQL Server - Tutorial SQL Server / TSQL Parte 114

No último post, aprendemos como retornar x linhas superiores/inferiores da tabela do sql server. Neste post, vamos aprender Top com gravatas.

De acordo com BOL
"COM LATAS
Usado quando você deseja retornar duas ou mais linhas empatadas em último lugar no conjunto de resultados limitados. Deve ser usado com a cláusula ORDER BY. WITH TIES pode fazer com que mais linhas sejam retornadas do que o valor especificado na expressão. Por exemplo, se a expressão for definida como 5, mas 2 linhas adicionais corresponderem aos valores das colunas ORDER BY na linha 5, o conjunto de resultados conterá 7 linhas. "

Vamos criar a tabela dbo.Customer e descobrir a diferença entre Top e Top With Ties.

Create table dbo.Customer(
Id int,
Name VARCHAR(10),
Address VARCHAR(100))

--Insert records in dbo.Customer table
Insert into dbo.Customer
Values(1,'Aamir','XyZ Address')
,(2,'Raza',Null)
,(1,'Aamir','XyZ Address')
,(1,'John','XyZ Address')
,(5,'Lisa','XyZ Address')
 Percebi que temos registros duplicados conforme destacado acima. Vamos executar as consultas abaixo, primeiro apenas com Top e depois com "With Ties" e observar a saída.

Select top (2) * From dbo.Customer 
order by ID
how to use Top x to get top records from table in SQL Server - TSQL Tutorial
Select top (2) WITH TIES * From dbo.Customer order by ID
 
Como usar Top with Ties no SQL Server para obter as x linhas Top - SQL Server / TSQL Tutorial
 A primeira consulta retornou apenas 2 registros, mas a segunda consulta com "With Ties" retornou três registros, pois o valor de Id para o terceiro registro também era 1 que correspondia à segunda linha ( id column value =1). Se você usar "With Ties" com Top, a consulta também fornecerá todos os empates com a última linha com base na coluna de ordenação.