OFFSET e FETCH permitem recuperar dados em partes. Eles especificam um bloco de linhas que você deseja obter em uma única consulta.
offset_row_count ou fetch_row_count pode ser um número ou uma constante literal. Você pode omitir fetch_row_count; por padrão, ele é igual a 1.
OFFSET especifica o número de linhas que devem ser ignoradas antes de começar a retornar linhas do conjunto de resultados da consulta. OFFSET n ignora as primeiras n linhas do resultado.
OFFSET negativo é suportado: OFFSET -n ignora as últimas n linhas do resultado.
OFFSET fracionário também é suportado: OFFSET n — se 0 < n < 1, então os primeiros n * 100% do resultado são ignorados.
Exemplo:
• OFFSET 0.1 — ignora os primeiros 10% do resultado.
Observação • A fração deve ser um número Float64 menor que 1 e maior que zero. • Se o cálculo resultar em um número fracionário de linhas, ele será arredondado para cima até o próximo número inteiro.O
FETCH especifica o número máximo de linhas que podem estar no resultado de uma consulta.
A opção ONLY é usada para retornar linhas que vêm imediatamente após as linhas omitidas pelo OFFSET. Nesse caso, FETCH é uma alternativa à cláusula LIMIT. Por exemplo, a consulta a seguir
WITH TIES é usada para retornar linhas adicionais empatadas na última posição do conjunto de resultados, de acordo com a cláusula ORDER BY. Por exemplo, se fetch_row_count estiver definido como 5, mas duas linhas adicionais tiverem os mesmos valores nas colunas de ORDER BY da quinta linha, o conjunto de resultados conterá sete linhas.
De acordo com o padrão, a cláusula
OFFSET deve vir antes da cláusula FETCH, se ambas estiverem presentes.O deslocamento real também pode depender da configuração offset.
Exemplos
ONLY:
Consulta
Response
WITH TIES:
Consulta
Response