12c - SQL Query Row Limits and Offsets

No Oracle Database 12c, foi introduzida a  row_limiting_clause no comando Select. Esta nova cláusula limita o número de registros retornados em um Select de forma mais efetiva do que as releases anteriores do banco de dados Oracle.

Os novos keywords OFFSET e FETCH fornecem o padrão ANSI SQL para limitar o número de linhas retornadas e para especificar uma linha de partida para o conjunto de retorno. 





SQL>create table tabela_teste (codigo number, nome varchar2(20));
Table created.

insert into tabela_teste values (1,'Alex');
insert into tabela_teste values (2,'Joao');
insert into tabela_teste values (3,'Maria');
insert into tabela_teste values (4,'Pedro');
insert into tabela_teste values (5,'Paulo');
insert into tabela_teste values (6,'Fernando');
insert into tabela_teste values (7,'Rafael');
insert into tabela_teste values (8,'Samuel');
insert into tabela_teste values (9,'Daniel');
insert into tabela_teste values (10,'Luciano');

commit;

Commit complete.



SQL> select * from tabela_teste order by codigo desc fetch first 5 rows only;

CODIGO     NOME
---------- --------------------
10         Luciano
9          Daniel
         Samuel
         Rafael
         Fernando



SQL> select * from tabela_teste order by codigo desc offset 4 rows fetch next 4 rows only;

CODIGO     NOME
---------- --------------------
6          Fernando
5          Paulo
4          Pedro
3          Maria




SQL> select * from tabela_teste order by codigo desc fetch first 20 percent rows only;

CODIGO     NOME
---------- --------------------
10         Luciano
9          Daniel




Referências:



Abraço


Alex Zaballa

0 comentários: