我想知道是否有一种简单的方法可以做这样的事情......
SELECT
column_1,
column_2,
column_3,
...
column_n
FROM my_table
ORDER BY
column_1 ASC,
column_2 ASC,
column_3 ASC,
...
column_n ASC;
但要使它更清洁如:
SELECT
column_1,
column_2,
column_3,
...
column_n
FROM my_table
ORDER BY SELECT LR ASC;
我知道这不起作用,但我希望这个想法有意义。从本质上讲,我是按顺序从左到右(LR)的顺序进行排序的表。
那里有这样的东西吗?或者这是一个愚蠢的想法?
答案 0 :(得分:2)
ORDER BY
的语法汇总在this manual page中。没有允许您在一个表达式中指定多个列的版本。
手册确实提到了,但没有给出“列数”的例子,这可以使生活更轻松一些。 ORDER BY 1
表示“按SELECT
列表中的第一列/表达式排序”,因此您可以这样写:
SELECT
column_1,
column_2,
column_3,
...
column_n
FROM my_table
ORDER BY
1 ASC,
2 ASC,
3 ASC,
...
column_n ASC;
所以你只需要知道列的 number ,而不是重复每个列的全名或表达。
答案 1 :(得分:0)