我有大约30列的大量查询。 我用以下命令查询了查询:
Select *
From
.
.
.
order by id,status
现在我想在结果中以某种方式呈现列。
首先是id
列,然后是status
列,然后是其他所有列。
有没有办法做到这一点(没有在select中手动指定 30列名称)。类似于:Select id,status, REST
答案 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列