sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bruger du Top with Ties i SQL Server - SQL Server / TSQL Tutorial Del 114

I sidste indlæg lærte vi, hvordan man returnerer top / bund x rækker fra sql server tabel. I dette indlæg lærer vi Top med slips.

Ifølge BOL
"WITH BIES
Bruges, når du ønsker at returnere to eller flere rækker, der er lige til sidstepladsen i det begrænsede resultatsæt. Skal bruges sammen med ORDER BY-klausulen. WITH TIES kan forårsage, at der returneres flere rækker end den værdi, der er angivet i udtrykket. Hvis udtryk f.eks. er sat til 5, men 2 yderligere rækker matcher værdierne af ORDER BY-kolonnerne i række 5, vil resultatsættet indeholde 7 rækker. "

Lad os oprette dbo.Customer-tabel og finde ud af forskellen mellem Top og 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')
 Bemærket, at vi har duplikerede poster som fremhævet ovenfor. Lad os køre nedenstående forespørgsler, først med kun Top og anden med "With Ties" og observere outputtet.

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
 
Sådan bruger du Top with Ties i SQL Server til at få Top x rækker - SQL Server / TSQL Tutorial
 Den første forespørgsel returnerede kun 2 poster, men den anden forespørgsel med "With Ties" returnerede tre poster, da værdien for Id for tredje post også var 1, der matchede med anden række (id-kolonneværdi=1). Hvis du bruger "Med bånd" med Top, vil forespørgslen også give dig alle bånd til den sidste række baseret på bestillingskolonnen.





  1. Brug OBJECTPROPERTY() til at finde ud af, om et objekt er en CHECK-begrænsning i SQL Server

  2. Sådan får du MySQL-tabellens primærnøgle til automatisk at stige med et præfiks

  3. SQL-forespørgsel returnerer data fra flere tabeller

  4. PL/SQL-samling:Indlejret tabel i Oracle-database