我有一个表 A,它有以下方式的列:
COL1 COL2 COL3 2 1 4 6 10 8
我的要求是我必须使用 col1 和 col2 的最大值在第三列中插入值(如果 col1 > col2 则值插入 col3 作为 col1 值)
Oracle 这样做的方式是:
UPDATE A SET COL3 = GREATEST(COL1, COL2)
另一种方法是使用best()函数col3
返回的结果简单地更新您的表:
update t1
set col3 = greatest(col1, col2);
-- where clause if needed
select *
from t1
结果:
COL1 COL2 COL3
---------- ---------- ----------
2 1 2
4 6 6
10 8 10
您还可以将 COL3 添加为虚拟列:
ALTER TABLE A ADD COL3 AS ( GREATEST(COL1, COL2) )
它将使您的查询始终保持最新状态!无需更新。
请试试:
UPDATE YourTable
SET COL3= case when COL1>COL2 then COL1 else COL2 end