PostgreSQL ORDER BY 列位置(而不是列名)

pid*_*uis 3 sql postgresql sql-order-by

基本上,我不想要:

SELECT firstname, lastname FROM person ORDER BY lastname;

反而:

SELECT firstname, lastname FROM person ORDER BY <column number 2>;

我可以创建一个映射,但我想知道是否有本地技巧可以做到这一点。

dav*_*vek 5

SELECT firstname, lastname 
FROM person 
ORDER BY 2;  --2nd column
Run Code Online (Sandbox Code Playgroud)

  • @jarlh:它在 Postgresql 中没有被弃用(可能是 ANSI-SQL):http://www.postgresql.org/docs/9.3/static/sql-select.html#SQL-ORDERBY (2认同)
  • 抱歉,我的意思是不推荐使用 ANSI SQL。 (2认同)
  • 当引入 order by 表达式 (SQL-99) 时,排序键从 &lt;column name&gt; | 更改。&lt;无符号整数&gt;(如在 SQL-92 中),只是 &lt;值表达式&gt; 和“18)如果指定了 &lt;order by 子句&gt;,则: a) 让 Ki 成为包含在 i- th &lt;排序规范&gt;。[...] d) Ki 不应是 &lt;literal&gt;。” (2认同)