【发布时间】:2021-01-16 17:50:02
【问题描述】:
我想添加一个名为“Sweep”的列,其中包含基于“Result”是否为扫描的布尔值。因此,如果“结果”为“4-0”或“0-4”,我希望“扫描”列中的值为True,如果不是,则为False。
这是表格的一部分:
我试过这个:
ALTER TABLE "NBA_finals_1950-2018"
ADD "Sweep" BOOL;
UPDATE "NBA_finals_1950-2018"
SET "Sweep" = ("Result" = '4-0' OR "Result" = '0-4');
但由于某种原因,当我运行此代码时...:
SELECT *
FROM "NBA_finals_1950-2018"
ORDER BY "Year";
...只有一个行(最后一行)具有值 True,即使有其他行的结果是扫描('4-0' 或 '0-4'),如下图。
我不知道为什么会这样,但我猜UPDATE...SET 代码有问题。请帮忙。
提前致谢。
注意:我使用的是 PostgreSQL 13
【问题讨论】:
-
与您的问题无关,但是:您应该真正避免使用那些可怕的带引号的标识符。他们的麻烦比他们值得的要多得多。 wiki.postgresql.org/wiki/…
标签: sql postgresql sql-update alter-table