gpt4 book ai didi

sql - 如何进行 PostgreSQL 条件内连接更新

转载 作者:行者123 更新时间:2023-12-03 22:32:18 27 4
gpt4 key购买 nike

UPDATE "users" SET "reliabilityScore"= ( CASE WHEN r."score" < 0 THEN 0 
WHEN r."score" > 100 THEN 100
ELSE r."score"
END
) FROM "users" u, "scores" r WHERE u."id"=r."user_id";
那是我的查询。并且用户表上的所有reliabilityScore 字段都由scores 表上的第一个分数记录更新。
我正在尝试通过内部联接更新 Postgres 列。如果目标值小于 0,则将更新值设置为 0,如果大于 100,则设置为 100,如果在 0 和 100 之间,则设置传入值。但我的查询仅按第一个值更新所有记录。

最佳答案

不要在 users 子句中使用 FROM 表,如下所示:

UPDATE "users" 
SET "reliabilityScore"= CASE WHEN r."score" < 0 THEN 0
WHEN r."score" > 100 THEN 100
ELSE r."score" END
FROM "scores" r WHERE u."id"=r."user_id"

关于sql - 如何进行 PostgreSQL 条件内连接更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65700738/

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