ORACLE和PostgreSQL之间的不同默认顺序

ORACLE和PostgreSQL之间的不同默认顺序,oracle,postgresql,sql-order-by,Oracle,Postgresql,Sql Order By,我有一个简单的ORACLE查询,我应该重写它以在postgresql上运行,输出如下 Select X,Y FROM table_name order by Y 如果是,表中只有以下数据 这里是PG和oracle在数据排序方面的区别 你知道为什么会出现这种差异吗 不同的默认顺序 在Oracle和Postgres(或任何其他关系数据库)中都不存在“默认排序”这样的东西。关系数据库中的表表示未排序的集合 您正在对包含两(所有)行相同值的列进行排序。这与根本不排序基本相同,因为您没有定义任何排序

我有一个简单的ORACLE查询,我应该重写它以在postgresql上运行,输出如下

 Select X,Y FROM table_name order by Y
如果是,表中只有以下数据

这里是PG和oracle在数据排序方面的区别

你知道为什么会出现这种差异吗

不同的默认顺序

在Oracle和Postgres(或任何其他关系数据库)中都不存在“默认排序”这样的东西。关系数据库中的表表示未排序的集合

您正在对包含两(所有)行相同值的列进行排序。这与根本不排序基本相同,因为您没有定义任何排序条件来打破这些联系。没有额外的排序列,数据库就可以自由地以它喜欢的任何顺序返回具有相同排序值的行

如果希望按列
x
对行进行排序,则需要在
按顺序中包含该列

select X,Y 
FROM table_name 
order by x,y;

或者,您可能想要按y、x排序
order by,x
-您的问题(以及难以阅读的屏幕截图)不清楚您没有将
y
添加到
order by
子句中,因此您不能期望结果按
y
排序。