【发布时间】:2022-05-23 08:53:25
【问题描述】:
我有一张必须在 Postgres 中更改的表。我现在想根据条件为表中存在的行插入一些值。我正在考虑使用 CASE 块!
这是我所拥有的:
INSERT INTO MyTable (value1, value2) values
(1, SELECT t.name,
CASE WHEN t.name IN ('MyName') THEN 1
ELSE 2
END AS value2
FROM MyTable t);
我收到一个错误:
ERROR: syntax error at or near "select"
SQL state: 42601
Character: 71
有什么线索吗?
【问题讨论】:
-
两件事:如果您使用选择插入,则不需要“值”语句。您的表中似乎也有两列,并试图插入三个值 - 1、t.name 和您的 case 语句。您只想插入 t.name 和 case 语句吗?
-
我想检查名称是什么,并基于此我想插入 1 或 2。我只想插入两列
-
基本上,我正在尝试用这两列的值更新我的表
-
在这种情况下您确定不想要 UPDATE 查询吗?
-
是的,我想 UPDATE 查询很适合
标签: postgresql