postgresql - 在 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)
)
解决方案
使用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
);
查看简化的演示。
推荐阅读
- php - 如何允许 CRON 访问目录或文件?
- python - Why is my recurrent neural network giving me an error?
- python - .NET 的 Debugger.Launch() 是否有等效的 Python 版本?
- javascript - 如何使用 React Router 匹配不明确的路径和静态路径
- apache-spark - 使用 PySpark 在 Elasticsearch 中保存数据
- python - 组合字典,将匹配键与整数而不是字符串相加
- javascript - 如何使叠加层在单击之前保持隐藏状态
- css - 跨多列的角度 CSS 网格对象
- codeigniter - 文件上传时codeigniter出错
- python - 如果源图像和 LUT 似乎兼容,为什么 openCV cv2.LUT() 会抛出断言?