El día 20 de noviembre de 2009 07:32, Manuel Diego <man...@radiohead.cl> escribió: > Lo que deseas hacer es algo asi como una "paginación". Eso lo consigues > agregando el OFFSET a tu consulta es decir: > SELECT * FROM tabla LIMIT 100 OFFSET 0; > Despues > SELECT * FROM tabla LIMIT 100 OFFSET 100; > Y asi: > SELECT * FROM tabla LIMIT 100 OFFSET 200; > El 20-11-2009, a las 0:12, Yadira Lizama Mue escribió: >
Guarda con esto! Recuerden que el synchronize_seqscan esta activado, por lo que si la tabla es grande, a partir de una cierta cantidad de registros esto devuelve no siempre los mismos valores. CREATE TABLE muchos AS SELECT i as entero, random() as flotante FROM generate_series(1,1000000) i(i); SELECT * FROM muchos LIMIT 5 OFFSET 5000; 7961;0.165913014207035 7962;0.121883166953921 7963;0.16617708094418 7964;0.157062129117548 7965;0.104852370452136 SELECT * FROM muchos LIMIT 5 OFFSET 5000; 10921;0.214016762096435 10922;0.193961652927101 10923;0.321718231309205 10924;0.975195468403399 10925;0.748051355592906 Para que esto funcione como queres, tenés que hacer algo así (NO RECOMENDABLE): SET synchronize_seqscans = off; SELECT * FROM muchos LIMIT 5 OFFSET 5000; 5001;0.900254020001739 5002;0.546161777339876 5003;0.657537387683988 5004;0.729369143024087 5005;0.755969829391688 La otra manera es utilizando un ORDER BY para ordenar por la columna principal -- Emanuel Calvo Franco DBA at: www.siu.edu.ar www.emanuelcalvofranco.com.ar -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net