gpt4 book ai didi

sql - 更新具有不同条件的多个列

转载 作者:行者123 更新时间:2023-11-29 14:27:52 24 4
gpt4 key购买 nike

我有 INSERT 语句,其中通过 SELECT 从其他表中提供值。关于冲突我正在更新几个专栏。我只是想知道是否可以设置每列匹配唯一条件

现在我有了可行的解决方案,但它并不理想。

基本上这样的东西会符合我想要的结果..

WITH table_a (
--joining two tables
)

INSERT INTO table_b
SELECT * FROM table_a
ON CONFLICT
ON CONSTRAINT table_b_pkey DO UPDATE
SET column_a = EXCLUDED.column_a
WHERE table_b.column_a < EXCLUDED.column_a
OR
SET column_b = EXCLUDED.column_b
WHERE table_b.column_b < EXCLUDED.column_b

最佳答案

使用CASE,例如:

INSERT INTO table_b
SELECT * FROM table_a
ON CONFLICT
ON CONSTRAINT table_b_pkey DO UPDATE
SET
column_a = CASE
WHEN table_b.column_a < EXCLUDED.column_a
THEN EXCLUDED.column_a
ELSE table_b.column_a END,
column_b = CASE
WHEN table_b.column_b < EXCLUDED.column_b
THEN EXCLUDED.column_b
ELSE table_b.column_b END

关于sql - 更新具有不同条件的多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854502/

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