selection de 20 registros en 20
como puedo hacer una seleccion de 20 registros en 20no se como hacerlo alguien puede ayudarme
Al hacer algun query puedes utilizar la columna ROWNUM, esta columna es una especie de correlativo que se le ponen a los datos antes de hacer el order by.
ejemplo
select codigo,nombre, rownum
from empleados
where rownum <= 20
Lo anterior te devolvera los primeros 20 empleados.
El problema es que si le agregas un ORDER BY ya no funciona.
Ejemplo
select codigo,nombre, rownum
from empleados
where rownum <= 20
order by nombre
Ya que el numero de rownum lo genera antes de hacer el ordenamiento.
Pero existe un pequeño truco:
select codigo,nombre,rownum
from (select codigo,nombre
from empleados
order by nombre
)
where rownum < 20
/
Con lo anterior ya puedes utilizar el rownum y order by. El unico inconveniente, es que la anterior sintaxis (poner un query en el from y hacer un order by dentro de el ) no la soporta el Developer.
ejemplo
select codigo,nombre, rownum
from empleados
where rownum <= 20
Lo anterior te devolvera los primeros 20 empleados.
El problema es que si le agregas un ORDER BY ya no funciona.
Ejemplo
select codigo,nombre, rownum
from empleados
where rownum <= 20
order by nombre
Ya que el numero de rownum lo genera antes de hacer el ordenamiento.
Pero existe un pequeño truco:
select codigo,nombre,rownum
from (select codigo,nombre
from empleados
order by nombre
)
where rownum < 20
/
Con lo anterior ya puedes utilizar el rownum y order by. El unico inconveniente, es que la anterior sintaxis (poner un query en el from y hacer un order by dentro de el ) no la soporta el Developer.
No entiendo muy bien tu pregunta porque no soy español pero ¿es éste lo que quieres hacer?
SQL> l
1 select distinct object_name
2 from dba_objects
3* where rownum < 21
SQL> /
OBJECT_NAME
------------------------------
BOOTSTRAP$
CDEF$
CLU$
CON$
C_FILE#_BLOCK#
C_OBJ#
C_USER#
FET$
FILE$
ICOL$
IND$
OBJECT_NAME
------------------------------
I_CDEF1
I_CON1
I_FILE#_BLOCK#
I_FILE1
I_FILE2
I_ICOL1
I_OBJ#
I_TS1
UNDO$
20 rows selected.
SQL>
SQL> l
1 select distinct object_name
2 from dba_objects
3* where rownum < 21
SQL> /
OBJECT_NAME
------------------------------
BOOTSTRAP$
CDEF$
CLU$
CON$
C_FILE#_BLOCK#
C_OBJ#
C_USER#
FET$
FILE$
ICOL$
IND$
OBJECT_NAME
------------------------------
I_CDEF1
I_CON1
I_FILE#_BLOCK#
I_FILE1
I_FILE2
I_ICOL1
I_OBJ#
I_TS1
UNDO$
20 rows selected.
SQL>
