0

私はテーブルAを持っています、それは次の方法で列を持っています:

COL1 COL2 COL3
 2 1
 4 6           
 10 8   

私の要件は、col1 と col2 の最大値を使用して 3 列目に値を挿入することです (col1 > col2 の場合、col1 値として col3 に値を挿入します)。

4

4 に答える 4

3

これを行うオラクルの方法は次のようになります。

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

別のアプローチは、 Greatest()関数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 に答える