sábado, 20 de setembro de 2014

Limitando os registros a serem exibidos - Firebird, MySQL, PostgreSQL e IBM DB2

Bem, uma dica bem rápida, sobre como limitar as linhas resultantes em um select dentro de um banco de dados IBM DB2. Normalmente, isso é uma tarefa simples de se fazer. Por exemplo, como faríamos para listar apenas os 100 primeiros registros da tabela CLIENTES ??
Vamos ver alguns exemplos...

Firebird
select first 100 nome, fone from CLIENTES

MySQL

select nome, fone from CLIENTES limit 100

PostgreSQL

select nome, fone from CLIENTES limit 100

DB2

select nome, fone from CLIENTES fetch first 100 rows only




Até aí beleza, a sintaxe utilizada pelo DB2 é um pouco diferente das demais, mas ainda assim, é tranquilo. Mas e se quiséssemos listar os primeiros 100 registros, saltando os primeiros 10??? Simples?? Vamos lá...

Firebird

select first 100 skip 10 nome, fone from CLIENTES

MySQL

select nome, fone from CLIENTES limit 100 offset 10

PostgreSQL

select nome, fone from CLIENTES limit 100 offset 10


Pois é, mas e no DB2??? Bem, no DB2 não temos  nenhuma instrução para indicar o salto de linhas como temos no Firebird, MySQL e PostgreSQL, mas ainda assim é possível fazê-lo. Mas de que forma? Simples, numeramos as linhas e delimitamos os resultados:

DB2

select nome, fone from 
  ( select row_numer() over() as num, nome, fone from CLIENTES ) aux
where num>10 fetch first 100 rows only


Bem pessoal, é isso! 

Nenhum comentário:

Postar um comentário

Adicione seu comentário. O mesmo será moderado antes de sua publicação.