Postgres - 从最新到最旧的顺序 - 没有时间戳

时间:2017-03-27 21:27:29

标签: postgresql

有没有办法在降序(基于创建时间)的表格中列出条目,因为我没有时间戳或表格中的任何日期/时间?我发现的所有示例都使用order by timestamp

感谢。

2 个答案:

答案 0 :(得分:1)

为了订购(又名 sort )查询结果,您需要对其进行排序。如果您没有时间戳,那很难做到。

但是,许多表都有隐藏的ID字段,称为oid。它是一个唯一的标识符,可能是您所希望的最佳标识符:

CREATE TABLE tbl(
  name text
  ) WITH (oids);

INSERT INTO tbl VALUES ('John'),('Jacob'),('Jingle-Heimer'),('Schmitt');


SELECT * FROM tbl ORDER BY oid;

您将受到 oid 值的支配以及该字段是否存在。如果您的数据库配置是默认创建的,则可能无需在创建表时指定它。

SQLFiddle

答案 1 :(得分:0)

如果您的数据具有自动生成的索引列,那么您可以按降序对其进行排序,以(粗略地)按照添加它们的相反顺序返回条目。

这不是一个理想的解决方案,因为它会对索引的生成方式做出某些假设,但它可能是最接近您无需实际添加时间戳的情况。

如果您还没有索引列,那么默认排序顺序按照添加到数据库的顺序返回条目,尽管这样更可靠,并且您'之后,无论您使用何种语言检索/显示数据,都必须手动应用反向排序。