Postgresql Postgres按选择列排序

Postgresql Postgres按选择列排序,postgresql,Postgresql,我想知道是否有一个简单的方法来做这样的事情 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, col

我想知道是否有一个简单的方法来做这样的事情

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)递增的


外面有类似的东西吗?还是一个愚蠢的想法?

你不能。没有这样的结构:

中总结了排序依据的语法。没有允许您在一个表达式中指定多个列的版本

手册确实提到了,但没有给出“列编号”的示例,这可以让生活更轻松<代码>按1排序表示“按
选择
列表中的第一列/表达式排序”,因此您可以这样写:

SELECT
    column_1,
    column_2,
    column_3,
    ...
    column_n
FROM my_table
ORDER BY
    1 ASC,
    2 ASC,
    3 ASC,
    ...
    column_n ASC;

因此,您只需要知道列的数量,而不需要重复每个列的全名或表达式。

是的,但这不包括在末尾添加两个新列,其中一个列忘记按顺序排列。我知道列号,这似乎是一个很好的功能。@KevinOrriss是的,我意识到这不是你想要的,但我想这是你能得到的。很抱歉