sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder Top with Ties i SQL Server - SQL Server / TSQL Tutorial Del 114

I förra inlägget lärde vi oss hur man returnerar topp / botten x rader från sql-servertabellen. I det här inlägget kommer vi att lära oss Topp med slipsar.

Enligt BOL
"WITH TIES
Används när du vill returnera två eller fler rader som är lika för sista plats i den begränsade resultatuppsättningen. Måste användas med ORDER BY-satsen. WITH TIES kan orsaka att fler rader returneras än värdet som anges i expression. Om uttrycket till exempel är inställt på 5 men ytterligare 2 rader matchar värdena i ORDER BY-kolumnerna på rad 5, kommer resultatuppsättningen att innehålla 7 rader. "

Låt oss skapa dbo.Customer-tabell och ta reda på skillnaden mellan Top och 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')
 Har märkt att vi har dubbletter av poster som markerats ovan. Låt oss köra frågorna nedan, först med endast Top och andra med "With Ties" och observera resultatet.

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
 
Hur man använder Top with Ties i SQL Server för att få Top x rader - SQL Server / TSQL Tutorial
 Den första frågan returnerade bara 2 poster men den andra frågan med "With Ties" returnerade tre poster eftersom värdet för Id för tredje posten också var 1 som matchade med andra raden (id-kolumnvärde=1). Om du använder "With Ties" med Top, kommer frågan också att ge dig alla kopplingar till den sista raden baserat på beställningskolumnen.





  1. JSON_DEPTH() – Hitta det maximala djupet för ett JSON-dokument i MySQL

  2. Felsökning av Microsoft SQL Server Error 18456

  3. Visa hela SQL-frågan i Show Processlist för MySQL

  4. Hurliga tweets om livet för en DBA