Sql 基于给定的行和列值,从表中选择下n行

Sql 基于给定的行和列值,从表中选择下n行,sql,postgresql,Sql,Postgresql,我目前正试图从一个表中获取下一行或前一行,为了论证起见,下一行是50行 我将知道一行,它可能位于数据中的任何位置,并且我希望根据timestamp列获得下一个50或上一个50。问题是timestamp列不一定是有序的,尽管它可能是有序的,因此数据中的下一行可能具有错误的时间戳 我认为最好的方法是创建一个临时表,根据是搜索上一行还是下一行,丢弃给定行之前或之后的所有时间戳,按时间戳排序,然后选择下一行/前50行?基本上我对SQL不是很熟悉 提前感谢。表格没有订单,也没有下一条记录。表是无序的数据集

我目前正试图从一个表中获取下一行或前一行,为了论证起见,下一行是50行

我将知道一行,它可能位于数据中的任何位置,并且我希望根据timestamp列获得下一个50或上一个50。问题是timestamp列不一定是有序的,尽管它可能是有序的,因此数据中的下一行可能具有错误的时间戳

我认为最好的方法是创建一个临时表,根据是搜索上一行还是下一行,丢弃给定行之前或之后的所有时间戳,按时间戳排序,然后选择下一行/前50行?基本上我对SQL不是很熟悉


提前感谢。

表格没有订单,也没有下一条记录。表是无序的数据集。next的任何顺序或定义都是在数据查询中定义的。
SELECT  *
FROM    mytable m
WHERE   (ts, id) <
        (
        SELECT  ts, id
        FROM    mytable mi
        WHERE   mi.id = :myid
        )
ORDER BY
        ts DESC, id DESC
LIMIT 50