gpt4 book ai didi

sql - 按名称而不是在 Postgres 中的位置插入

转载 作者:行者123 更新时间:2023-11-29 12:18:04 25 4
gpt4 key购买 nike

在 Postgres(9.4 版 fwiw)中,INSERT INTO ... SELECT 查询似乎是根据列位置而不是名称插入:

pg=# CREATE TEMPORARY TABLE x (a int, b int);
CREATE TABLE
pg=# INSERT INTO x (a, b) SELECT 1 as b, 2 as a;
INSERT 0 1
pg=# SELECT * FROM x;
a | b
---+---
1 | 2
(1 row)

有什么方法可以构造此查询或类似的东西,以便按名称而不是按位置插入列?我希望这里的结果是:

pg=# SELECT * FROM x;
a | b
---+---
2 | 1
(1 row)

此处的上下文是 SELECT 的内容定义在与整个 INSERT 调用不同的位置,因此很难强制执行通用顺序。

最佳答案

只需将查询移动到子查询:

INSERT INTO x (a, b) SELECT a, b FROM (SELECT 1 AS b, 2 AS a) src;

关于sql - 按名称而不是在 Postgres 中的位置插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42093682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com