Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie Top with Ties in SQL Server - SQL Server / TSQL-Tutorial Teil 114

Im letzten Beitrag haben wir gelernt, wie man die oberen / unteren x Zeilen aus der SQL Server-Tabelle zurückgibt. In diesem Beitrag lernen wir Top mit Krawatten.

Gemäß BOL
"MIT KRAWATTEN
Wird verwendet, wenn Sie zwei oder mehr Zeilen zurückgeben möchten, die in der begrenzten Ergebnismenge den letzten Platz einnehmen. Muss mit der ORDER BY-Klausel verwendet werden. WITH TIES kann dazu führen, dass mehr Zeilen zurückgegeben werden als der im Ausdruck angegebene Wert. Wenn der Ausdruck beispielsweise auf 5 gesetzt ist, aber 2 zusätzliche Zeilen mit den Werten der ORDER BY-Spalten in Zeile 5 übereinstimmen, enthält die Ergebnismenge 7 Zeilen. "

Lassen Sie uns die Tabelle dbo.Customer erstellen und den Unterschied zwischen Top und Top With Ties herausfinden.

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')
 Beachten Sie, dass wir doppelte Datensätze haben, wie oben hervorgehoben. Lassen Sie uns die folgenden Abfragen ausführen, zuerst nur mit Top und zweitens mit "With Ties", und beobachten Sie die Ausgabe.

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
 
Wie man Top mit Ties in SQL Server verwendet, um Top x Zeilen zu erhalten - SQL Server / TSQL Tutorial
 Die erste Abfrage hat nur 2 Datensätze zurückgegeben, aber die zweite Abfrage mit "With Ties" hat drei Datensätze zurückgegeben, da der Wert für die ID für den dritten Datensatz ebenfalls 1 war, der mit der zweiten Zeile übereinstimmte (ID-Spaltenwert =1). Wenn Sie "Mit Gleichstand" mit Oben verwenden, gibt Ihnen die Abfrage auch alle Gleichstände mit der letzten Zeile basierend auf der Sortierspalte aus.