SQL Server - Limit desde , hasta en Sqlserver

   
Vista:

Limit desde , hasta en Sqlserver

Publicado por Ricardo (4 intervenciones) el 11/06/2015 17:11:34
Estimados junto con saludar quisiera consultar si existe una sentencia en sqlserver que equivalga al Limit desde, hasta de Mysql,
Se que existe el top el cual devuelve el número de filas definidas (ej:top 20 retorna 20 filas) lo que necesito es alguna sentencia que retorne entre limites ejemplo LIMIT 1,20 para realizar paginación
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Limit desde , hasta en Sqlserver

Publicado por Isaias (3186 intervenciones) el 11/06/2015 23:53:04
Consulta por TOP x, que te da los "x" registros

SELECT TOP 10 * FROM MYTABLA WHERE...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Limit desde , hasta en Sqlserver

Hola Ricardo

La cláusula Limit de mysql, te arroja un determinado número de registros con 2 argumentos:

Por ejemplo tienes una tabla de clientes con un ID numérico

entonces tu haces un SELECT * FROM CLIENTES LIMIT 5, y eso te devuelve los 5 primeros registros, digamos del 1 al 5.

También al hacer un SELECT * FROM CLIENTES LIMIT 2,5 te devolverá los 5 primeros registros pero empezando a partir del 2 hacia adelante osea los registros 3 al 7.

ESO MISMO en sql server lo puedes lograr mas o menos así:

select top(5) * From Clientes order by Id ASC

y para el segundo caso:

Select top(5) * From Clientes where ID>2 Order By ID ASC

Espero te ayude en tu cometido.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Limit desde , hasta en Sqlserver

Publicado por Rafael (88 intervenciones) el 17/06/2015 08:51:32
Hola:

Podrias usar una consulta similar a esta:
1
2
3
4
5
6
7
8
9
10
11
12
USE AdventureWorks;
GO
 
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader
)
SELECT *
FROM OrderedOrders
WHERE RowNumber BETWEEN 10 AND 20;

Con ello simulas el efecto LIMIT, sin embargo OJO que requiere algun tipo de ORDENACION, ve como implementarlo en tu necesidad.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar