PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Selecione até que a linha corresponda no postgresql?


O que você quer é uma espécie de condição de parada. Tanto quanto sei, não existe tal coisa no SQL, pelo menos no dialeto do PostgreSQL.

O que você pode fazer é usar um procedimento PL/PgSQL para ler as linhas de um cursor e devolvê-las até que a condição de parada seja atendida. Não vai ser super rápido, mas vai ficar tudo bem. É apenas um FOR loop sobre uma consulta com uma expressão IF expression THEN exit; ELSE return next; END IF; . Nenhum cursor explícito é necessário porque o PL/PgSQL usará um internamente se você FOR loop sobre uma consulta.

Outra opção é criar um cursor e ler trechos de linhas dele no aplicativo e, em seguida, descartar parte do último trecho assim que a condição de parada for atendida.

De qualquer forma, um cursor será o que você deseja.

A propósito, uma expressão de parada não seria muito difícil de implementar no PostgreSQL. Você teria que implementar um novo tipo de nó executor, mas o novo suporte CustomScan tornaria isso prático em uma extensão. Então você apenas avaliaria uma expressão para decidir se deve ou não continuar buscando linhas.