嗨,我将基于同一张表更新行。将“数据”列复制到数据为“”(空)的每一行。这行中的“键”是相同的。
id |data |key
----|-----|-----
1 | xyz |key1
----|-----|-----
2 | "" |key1
Run Code Online (Sandbox Code Playgroud)
我已经尝试过类似的方法,但是“关系a不存在”:
UPDATE a
SET a.data = b.data
FROM table a
INNER JOIN table b
ON (a.key = b.key)
WHERE b.data != '""'
Run Code Online (Sandbox Code Playgroud)
在 Postgres 中,语法为:
UPDATE a
SET a.data = b.data
FROM a b
WHERE a.key = b.key AND b.data <> '""' AND a.data = '""';
Run Code Online (Sandbox Code Playgroud)
注意:这假设a是表名;b然后是表的别名,“连接”条件位于子句中WHERE。
在Postgres SQL中,您不应在FROM子句中重复目标表的名称(因此不能使用JOIN)
UPDATE table_a dst -- <<-- target table
SET data = src.data
FROM table_a src -- <<--- same table, different alias
WHERE dst.key = src.key
AND dst.data = '""'
AND src.data <> '""'
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |