将一列中的值替换为另一列中的值

时间:2019-03-14 15:19:43

标签: postgresql

|Name    | FamilyName |
+--------+------------+
Penelopa | Crow       |
Mandarin | Overflow   |

我想从“名称”中读取Penelopa,并在单个查询中用Penelopa替换“ FamilyName”中的Crow值。

我确实知道我喜欢使用的名称将是Penelopa,就像我做的那样,并且它存在。

SELECT "Name" FROM MyTable WHERE "Name" = 'Penelopa';

2 个答案:

答案 0 :(得分:1)

这是一个基本的更新语句:

UPDATE MyTable
SET "FamilyName" = "Name"
WHERE "Name" = 'Penelopa' AND "FamilyName" = 'Crow'

为确保我们不会将所有姓氏都替换为penelopa名称,而只将姓氏Crow替换为姓氏,我在WHERE语句中包括了此条件。

还要注意的另一件事是,创建带有引号"的表和列只会增加编写代码的难度,因此我避免这样做。


要在不键入其他查询的情况下立即查看更改,您可以在RETURNING *查询的末尾添加UPDATE子句,如下所示:

UPDATE MyTable
SET "FamilyName" = "Name"
WHERE "Name" = 'Penelopa' AND "FamilyName" = 'Crow'
RETURNING *

答案 1 :(得分:0)

此SQL脚本可以执行您要执行的更新(用表名替换表):

update table set FamilyName=Name where Name='Penelopa';