Secondo BOL
"CON CRAVATTA
Utilizzato quando si desidera restituire due o più righe che si equivalgono per l'ultimo posto nel set di risultati limitato. Deve essere utilizzato con la clausola ORDER BY. WITH TIES può causare la restituzione di più righe rispetto al valore specificato in expression. Ad esempio, se l'espressione è impostata su 5 ma 2 righe aggiuntive corrispondono ai valori delle colonne ORDER BY nella riga 5, il set di risultati conterrà 7 righe. "
Creiamo la tabella dbo.Customer e scopriamo la differenza tra 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')Ho notato che abbiamo record duplicati come evidenziato sopra. Eseguiamo le query seguenti, prima con solo Top e la seconda con "With Ties" e osserviamo l'output.
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 |
Come utilizzare Top with Ties in SQL Server per ottenere Top x righe - Tutorial SQL Server/TSQL |