Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: parlan en 4 Noviembre 2010, 10:52 am



Título: Migrar consulta de Firebird a Oracle
Publicado por: parlan en 4 Noviembre 2010, 10:52 am
Hola chicos, a ver tengo un problema.

Tengo q migrar una consulta de firebird a oracle y tengo:
select first 10 skip 0 * from mi_tabla; --> en firebird --> para aclarar a quien no sepa firebird, First dice cuantos registros queremos devolver y Skip indica desde donde queremos comenzar
Es decir, esta consulta saca los primeros 10 registros, esta otra (select first 10 skip 10 * from mi_tabla; ) saca los 10 segundos, es decir, del 11 al 20....
 
Soy capaz de migrar a select * from mi tabla where rownum < 11; pero no se como hacerlo "dinamico" para dependiendo de cada consulta sea a partir de un numero u otro, pq si lo dejo asi, con el rownum solo saca los primeros 10 siempre.
 
Alguna idea?
 
Gracias


Título: Re: Migrar consulta de Firebird a Oracle
Publicado por: MazarD en 8 Noviembre 2010, 18:46 pm
En oracle puede parecer un poco más complejo pero es igual de eficiente, sería así:

Código
  1. SELECT *
  2. FROM (SELECT tabla.*, rownum rnum
  3. FROM (
  4. SELECT * FROM mi_tabla
  5. ) tabla
  6. WHERE rownum <= 20)
  7. WHERE rnum >= 10


Te sacaría del registro 10 al 20, la verdad es que es un poco triste que no tenga una sintaxis más limpia para algo tan común, pero es lo que hay.

Saludos!