0

我有一个表 A,它有以下方式的列:

COL1 COL2 COL3
 2 1
 4 6           
 10 8   

我的要求是我必须使用 col1 和 col2 的最大值在第三列中插入值(如果 col1 > col2 则值插入 col3 作为 col1 值)

4

4 回答 4

3

Oracle 这样做的方式是:

UPDATE A SET COL3 = GREATEST(COL1, COL2)
于 2013-10-17T05:51:59.693 回答
2

另一种方法是使用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
于 2013-10-17T05:52:12.813 回答
1

您还可以将 COL3 添加为虚拟列:

ALTER TABLE A ADD COL3 AS ( GREATEST(COL1, COL2) )

它将使您的查询始终保持最新状态!无需更新。

于 2013-10-17T06:02:28.223 回答
0

请试试:

UPDATE YourTable
SET COL3= case when COL1>COL2 then COL1 else COL2 end
于 2013-10-17T05:41:48.963 回答