sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo usar Top with Ties en SQL Server - SQL Server / Tutorial TSQL Parte 114

En la última publicación, aprendimos cómo devolver las filas x superior/inferior de la tabla del servidor sql. En este post aprenderemos Top con lazos.

Según BOL
"CON LAZOS
Se utiliza cuando desea obtener dos o más filas que empatan en el último lugar en el conjunto de resultados limitado. Debe usarse con la cláusula ORDER BY. WITH TIES puede hacer que se devuelvan más filas que el valor especificado en expresión. Por ejemplo, si expresión se establece en 5 pero 2 filas adicionales coinciden con los valores de las columnas ORDENAR POR en la fila 5, el conjunto de resultados contendrá 7 filas. "

Vamos a crear la tabla dbo.Customer y averiguar la diferencia entre Top y 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')
 Noté que tenemos registros duplicados como se destacó arriba. Ejecutemos las siguientes consultas, primero solo con Top y segundo con "With Ties" y observemos el resultado.

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
 
Cómo usar Top with Ties en SQL Server para obtener filas Top x - Tutorial de SQL Server / TSQL
 La primera consulta devolvió solo 2 registros, pero la segunda consulta con "Con lazos" devolvió tres registros ya que el valor de Id para el tercer registro también era 1 que coincidía con la segunda fila (valor de columna de id =1). Si usa "Con lazos" con Superior, la consulta también le dará todos los lazos con la última fila según la columna de orden.