【发布时间】:2016-01-30 10:15:37
【问题描述】:
Postgresql 中order by 子句的参数类型是什么?
我遇到了一个非常奇怪的行为(使用 Postgresql 9.5)。即查询
select * from unnest(array[1,4,3,2]) as x order by 1;
按预期生成1,2,3,4。但是查询
select * from unnest(array[1,4,3,2]) as x order by 1::int;
产生1,4,3,2,这看起来很奇怪。同样,每当我将1::int 替换为任何函数(例如greatest(0,1))甚至case 运算符时,结果都是无序的(与what I would expect 相反)。
那么order by 的参数应该具有哪种类型,以及如何获得预期的行为?
【问题讨论】:
-
什么是预期的行为?向您的问题添加一些示例数据和预期输出