OFFSET e FETCH permitem recuperar dados em partes. Eles especificam um bloco de linhas que você deseja obter em uma única consulta.
OFFSET ... FETCH do padrão SQL não podem ser combinadas com a forma de intervalo LIMIT ... AFTER ... UNTIL.
O valor de 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
Tabela de entrada:ONLY:
Query
Response
WITH TIES:
Query
Response