Si tienes que sacar 3 registros , es facil, si tienes que sacar mas tienes que añadir otra subselect y si tienes que sacar menos, quitar una .
Es una pollez , pero como ejercicio está bien.
Cita: SQL> CREATE TABLE TABLA
2 ( ID NUMBER )
3 /
Tabla creada.
SQL>
SQL> INSERT INTO TABLA VALUES ( 1 )
2 /
1 fila creada.
SQL> INSERT INTO TABLA VALUES ( 651 )
2 /
1 fila creada.
SQL> INSERT INTO TABLA VALUES (4451 )
2 /
1 fila creada.
SQL> INSERT INTO TABLA VALUES (4541 )
2 /
1 fila creada.
SQL> INSERT INTO TABLA VALUES ( 5651 )
2 /
1 fila creada.
SQL>
SQL> COMMIT
2 /
Validación terminada.
SQL>
SQL> select * from TABLA
2 where ID >= (
3 select max(ID)
4 from TABLA
5 where ID < (
6 select max(ID)
7 from TABLA
8 where ( ID ) not in (
9 select max(ID)
10 from TABLA
11 ) ) );
ID
---------
4451
4541
5651
SQL> SELECT * FROM TABLA ORDER BY ID DESC;
ID
---------
5651
4541
4451
651
1
SQL> DROP TABLE TABLA PURGE
2 ;
Tabla borrada.
SQL>