PostgreSQL:更改查询中列的顺序

时间:2015-06-22 12:56:42

标签: sql postgresql

我有大约30列的大量查询。 我用以下命令查询了查询:

Select *
From
.
.
.
order by id,status

现在我想在结果中以某种方式呈现列。 首先是id列,然后是status列,然后是其他所有列。

有没有办法做到这一点(没有在select中手动指定 30列名称)。类似于:Select id,status, REST

3 个答案:

答案 0 :(得分:1)

这将为您提供除您不想

之外的所有列
SELECT id, status,' || array_to_string(ARRAY(SELECT 'o' || '.' || c.column_name
        FROM information_schema.columns As c
            WHERE table_name = 'table_name' 
            AND  c.column_name NOT IN('id', 'status')
    ), ',') || ' FROM officepark As o' As sqlstmt

答案 1 :(得分:1)

“select *”将按照创建表时列出的顺序返回字段。如果您希望以特定顺序返回它们,请确保使用该顺序创建表。

答案 2 :(得分:1)

如果必须重复,可以创建一个新表:

CREATE TABLE FOO as
SELECT id, status, mydesiredorder

或者只是一个视图,不要忘记移动索引约束和外键。如果你必须只做一次,则比在这里要求更快指定30列