我在PostgreSQL中有一个表, 但问题是我的数据没有按照正确的数据顺序组织。
例如,我的表的第一行是'2017-05-30',最后一行是'2017-02-23'。 所以我想按日期“排序”我的桌子。
我不是在询问
SELECT * FROM MY_TABLE ORDER BY DATE;
我想“更新”我的桌子。
我该怎么做?
答案 0 :(得分:2)
你不能按照你的意思对PostgreSQL表进行排序。
在关系代数中,行的顺序并不重要,并且无法保证表中的行以任何特定顺序存储。除非您特别指定订单,否则也无法确保以特定顺序返回行。使用ORDER BY
。否则,您不应该依赖返回行的顺序。
正如评论中所指出的,RDBMS可能会重新排列查询结果中的行顺序以进行优化等等。
如果您愿意,可以使用row_number()
添加新的序列号字段,以指示与您的订单相关的行数(例如日期字段)。