日期:2014-05-17  浏览次数:20747 次

简单问题
oracle中update   table1   set   column1   =   xxx   where   ....
其中xxx条件为if   (   table1.column2> =0   and   table1.column3= 'ABC '   )  
                                      exp1
                            else  
                                      exp2

怎么表达,谢谢!!!!!!!!


------解决方案--------------------
楼主要的是这个?

update table
set column1=case when table1.column2> =0 and table1.column3= 'ABC ' then 'exp1 '
else 'exp2 ' end where ....

------解决方案--------------------
SQL> SELECT * FROM TEST;

ID ID1 ID2 ID3
---------- ---------- ---------- ----------
1 1 3 4
2 1 -1 4
3 1 2 3
4 1 2 4

SQL> UPDATE TEST SET ID1=CASE WHEN (ID2> 0 AND ID3=4) THEN 2 ELSE 3 END;

已更新4行。

SQL> SELECT * FROM TEST;

ID ID1 ID2 ID3
---------- ---------- ---------- ----------
1 2 3 4
2 3 -1 4
3 3 2 3
4 2 2 4