finding predecessor

Поиск
Список
Период
Сортировка
От Holger Klawitter
Тема finding predecessor
Дата
Msg-id 38900E6B.21233118@klawitter.de
обсуждение исходный текст
Список pgsql-general
Hi there,

is there any convenient way to find the predecessor of a record given
a particular order of the database?

The following select seems a little bit too expensive.

    create table tuples ( i int, j int, m int, k int );

    select * from tuples
    where i<i0
      or ( i=i0 and ( j<j0
        or ( j=j0 and ( k<k0
          or ( k=k0 and m<m0 )
            ))
          ))
    order by
      i desc, j desc, k desc, m desc
    limit 1;

I would like to have something like:

    declare c cursor for
        select * from tuples
        order by i,j,k,m;
    fetch select *
        where i=i0 and j=j0 and k=k0 and m=m0
    in c;
    fetch backward 1 in c;

Regards,
    Holger Klawitter
--
Holger Klawitter                                     +49 (0)251 484 0637
holger@klawitter.de                             http://www.klawitter.de/



В списке pgsql-general по дате отправления:

Предыдущее
От: Nicolas Huillard
Дата:
Сообщение: Problem with search on INT4
Следующее
От: Jim Mercer
Дата:
Сообщение: finding last element of an index