Saludos, como hago para poder obtener los registros que hay en una tabla desde cierta posicion?
Por ejemplo tengo una tabka asi:
ID | Valor
0 | a
1 | b Como lograria obtener los valores de la tabla desde el ID = 2
2 | c Para que me devolviera 2 y 3 unicamente?
3 | d Gracias por responder!
pues tiene que hacer una sentencia estableciendo limites ahora si solo quieres del 2 a otro numero
SELECT * FROM `tabla` LIMIT 2 , 30
Ahora si quieres todos los que siguen a 2 es decir sin limite
SELECT * FROM `tabla` WHERE `ID` > 2
donde tabla es el nombre de tu tabla.
SELECT * FROM `tabla` LIMIT 2 , 30.... oh.. limites, no lo conocia... y justo lo que necesitaba.
Muchas gracias por responder tan rapido Red Mx!!!!... por eso amo este foro!!
Saludos!
De anda, es bueno saber que mi respuesta te fue util.
Tu suerte es que estas en MySQL ya que en Oracle no existe ese parametro.
Cita de: Gorky en 10 Septiembre 2009, 10:32 AM
Tu suerte es que estas en MySQL ya que en Oracle no existe ese parametro.
Limites en Oracle A veces la incompatibilidad entre varios sistemas que implementan un Standard pueden dar un fuerte dolor de cabeza:
Por ejemplo, el standard SQL lo podemos ver implementado en los sistemas de Bases de Datos MySql y en los Oracle, y hay en ellos muchas coasa que funcionan en uno si y en otro no, como por ejemplo la forma de declarar los limites en una sentencia.
Si quiero recoger todos los campos del registro 5 al 15 de la tabla MiTabla
En My Sql es algo como
=>
SELECT * FROM MiTabla LIMIT 5, 10;
Y sin embargo en Oracle sería algo como
=>
SELECT * FROM (SELECT MiTabla.*, ROWNUM AS Fila FROM MiTabla) WHERE Fila Between 5 AND 15;
La cosa aun se complica más si además queremos que antes de hacerse el Limite queremos hacer una ordenación por algún campo
En My Sql es algo como
=>
SELECT * FROM MiTabla ORDER BY Nombre ASC LIMIT 5, 10;
Y sin embargo en Oracle sería algo como
=>
SELECT * FROM (SELECT TEMP.*, ROWNUM AS Fila FROM (SELECT * FROM MiTabla ORDER BY Nombre ASC) TEMP) WHERE Fila Between 5 AND 15;
Un auténtico asco.
Visto en :http://juanjeruiz.blogspot.com/2007/11/limites-en-oracle.html
Oracle es un asco por no acomodar o facilitar la consulta SQL a un usuario novato???? :-\
Sinceramente, los productos de calidad precisa no siempre son 'amigables ni populares' porque piensan que poca gente maneja a perfeccion Oracle? y porque piensan que un DBA o un Developer en Oracle suelen tener un salario entre los mas altos en empleos de tecnologia?
Oracle es un mundo enorme, incluye el server, soporta POO, soporta java, maneja perfiles y procesos de usuarios con limite y todo, soporta tremendamente las transacciones masivas fuertes sin alentarse o explotarse como haria MySQL cuando pasa de unos miles largos de registros.... Oracle es totalmente ACID compatible, MySQL (Aunque me encanta) no se le puede comparar.... y la seguridad que implementa Oracle no se puede comparar, y la distribucion del manejo de memoria en un sistema Unix, entre otras cosas...
Son dos productos distintos, uno va dirigido para novatos otros para profesionales, no pueden comparar y jamas se atrevan a comparar Postgresql vs Oracle porque es una perdida de tiempo. Oracle es Oracle y no solo por nombre.
Y sobre la consulta en Oracle seria:
SELECT * FROM TABLA WHERE ROWNUM BETWEEN 2 AND 30
que tiene eso de complicado????? Es solo lenguaje SQL basado en el ANSI SQL