首页 > 解决方案 > 在 Postgresql 中使用 IF 语句更新表

问题描述

如何在 PostgreSQL 中进行这样的查询?

update table1 set column9 = 
concat(
(if (b-a from table1)>1 then b-a else 0),',',
(if (c-b from table1)>1 then c-b else 0),',',
(if (d-c from table1)>1 then d-c else 0)
    )

标签: postgresqlif-statementsql-updatecase

解决方案


使用CASE这样的表达式:

UPDATE table1 
SET column9 = CONCAT(
  CASE WHEN b-a > 1 then b-a ELSE 0 END, ',',
  CASE WHEN c-b > 1 then c-b ELSE 0 END, ',',
  CASE WHEN d-c > 1 then d-c ELSE 0 END
);

查看简化的演示


推荐阅读