postgresql - 用两个条件更新一列
问题描述
我想做以下事情:
UPDATE table1 t1
SET column1 = 10 * t2.column1
FROM table2 t2
WHERE t1.column2 = 'yyy'
UPDATE table1 t1
SET column1 = 10 * t2.column2
FROM table2 t2
WHERE t1.column2 = 'zzz'
是否可以将其保存在一个语义块中?
解决方案
您CASE WHEN ..
只能在具有有效条件('yyy' OR 'zzz')的行上使用和应用更新
UPDATE table1 t1
SET column1 = CASE
WHEN t1.column2 = 'yyy' THEN column1 = 10 * t2.column1
WHEN t1.column2 = 'zzz' THEN column1 = 10 * t2.column2
end
FROM table2 t2
WHERE t1.column2 IN ( 'yyy','zzz')
推荐阅读
- graphics - GPU如何“指示”渲染图像?
- sql - 在 Silverlake 中将 Julian 日期转换为普通系统日期(使用 SQL 语句)
- python - 绘制 OpenCV 轮廓并保存为透明图像
- python - AttributeError:“dict”对象没有属性“translate”
- go - 无法初始化嵌入式结构
- node.js - 如何找到导致 502 Bad Gateway nginx Ubuntu 的原因
- python - 基于数据框中值的百分位数分配标签的 Pythonic 方法
- powershell - 脚本使用 ISE 但不是 powershell.exe 运行
- python - 如何在 Python 中获取类路径
- windows - 通过 SSH 路由流量 + DNS(即:socks 代理)