我有PostgreSQL表:
Username1 SomeBytes1
Username2 SomeBytes1
Username1 SomeBytes1
Username1 SomeBytes1
我需要从名为Username 1的表中获取一些行,但要从表的末尾获取。例如,我需要最后到行的Username 1
select from my_table where user = Username1 LIMIT 2
给我前两行,但我需要最后两行。
我如何选择它?
- 谢谢-谢谢
我有PostgreSQL表:
Username1 SomeBytes1
Username2 SomeBytes1
Username1 SomeBytes1
Username1 SomeBytes1
我需要从名为Username 1的表中获取一些行,但要从表的末尾获取。例如,我需要最后到行的Username 1
select from my_table where user = Username1 LIMIT 2
给我前两行,但我需要最后两行。
我如何选择它?
3条答案
按热度按时间but5z9lq1#
表中的第一行和最后一行是非常随意的。为了得到一个好的可预测的结果,你应该总是有一个
order by
子句。如果你有这个子句,那么得到最后两行将变得很容易。例如,如果您有一个主键或类似ID的东西(由序列填充),那么您可以执行以下操作:
desc
告诉数据库按逆序对行进行排序,这意味着最后一行将排在最前面。i5desfxk2#
您的数据表是否有主索引键?/您的数据表可以排序吗?因为'first'和'last'的概念暗示了Tuple的某种排序。如果是这种情况,您可以将数据排序成相反的方式,让您的'last'项目位于最上层。然后您可以使用您尝试的陈述式来存取它们。
zxlwwiss3#
要查看表尾,可以使用ctid。它是PostgreSQL中记录的临时物理标识符。