Select limitado

Hola, me gustaría saber si hay alguna forma de hacer un select y que solo devuelva por ejemplo de las fila 6 a la 10. Es decir que indicándole el principio y final solo te devuelva esa filas.
Gracias.
Respuesta
1
Si que se puede hacer. Te pongo un ejemplo.
Si esta es la tabla con los datos
Código Nombre
------ ------
1 A
2 B
3 C
4 D
5 D
La siguiente consulta me sacaría los que tiene código 3, 4 y 5.
SELECT *
from (
SELECT E.codigo as codigo,
E.Nombre AS nombre,
--0 as cc,
DENSE_RANK () OVER (partition by '' order by E.Codigo) as rango
FROM Ejemplo E)
where (rango >= 2 and rango <= 4)
Partition by agrupa por el campo que le indiques. En este caso '' para que considere a todos.
Dense_Rank sirve para que dentro de cada grupo, en nuestro caso todos los datos, les asigne un número.
Con esto tendríamos los valores que queremos y el valor rango por lo que deberemos utilizar este resultado con "tabla" para sacar los datos utilizando el where final.
Un par de cosas que me he dado cuenta. En los datos el nombre asociado al código 5 es E.
Por otra parte la linea --00 as cc, es un comentario y no se tiene en cuenta en la consulta por lo que lo puedes quitar.

3 respuestas más de otros expertos

Respuesta
1
Que yo sepa no hay ninguna función o método especial que permita hacer eso.
Únicamente es posible obtener las n primeras filas de una consulta con la función TOP. Para hacer lo que quieres podrías utilizar una consulta con TOP 10 MINUS una consulta con TOP 5... Pero como te digo, no hay ningún método directo.
Respuesta
1
No existe, en sql server existe el top y el número máximo de renglones que requieres, pero un rango de inicio y de término no.
Respuesta
1
Podrías probar con el ROWNUM, por ejemplo:
Select * from table
Where rownum < 10

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas