2009/8/17 JotaComm <[email protected]>
>
> Olá, Thiago
>
> Você pode usar o SELECT com LIMIT e OFFSET ou derrepente fazer o uso de
> cursores também.
>
>
Só para exemplificar o que o Jota comentou você poderia fazer algo do tipo:
postg...@bdteste=# create table foo(codigo serial, nome varchar) ;
NOTICE: CREATE TABLE will create implicit sequence "foo_codigo_seq" for
serial column "foo.codigo"
CREATE TABLE
postg...@bdteste=# insert into foo (nome) select 'Nome '||id from
generate_series(1, 100) as id;
INSERT 0 100
postg...@bdteste=# create temp sequence rownumber ;
CREATE SEQUENCE
postg...@bdteste=# create temp table tmp_foo as select foo.*, chr(cast(65 +
( (nextval('rownumber')-1) / 25) as integer)) as letra from foo;
SELECT
Dessa forma criei uma tabela temporária chamada "tmp_foo" com os dados
necessários, dai para você verificar o resultado basta executar os seguintes
SELECTs:
select * from tmp_foo offset 0 limit 25;
select * from tmp_foo offset 25 limit 25;
select * from tmp_foo offset 50 limit 25;
select * from tmp_foo offset 75 limit 25;
Lembre-se que é apenas um exemplo, não levei em conta a quantidade de linhas
que irá retornar, tanto é que usei uma tabela temporária e dependendo do
volume de dados pode se tornar proibitivo...
Também poderias mesclar a query que enviei com a numeração a solução enviada
pelo Fabiano (uma pl), dai voce poderá obter uma função mais genérica para
uso desse recurso.
Outro detalhe seria quanto ao identificado da página (A, B, C, D, ...) e
quando acabar o alfabeto?? o que deve ser feito??? tens de pensar nisso
também...
--
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral