Oracle SQL:比较2列中的所有值并进行交换

时间:2011-07-15 14:50:13

标签: sql oracle plsql if-statement cursor

我有一个带有名为myC的表的Oracle DB。在这张表中,我有几行,其中两行称为myCheight, myCwidth

我需要阅读这些值并将其与IF myCheight > myCwidth DO switch the values.

中的值进行比较

我试图从一行读取值,但没有让它工作。我使用Oracles Oracle SQL Developer。

这是我到目前为止所提出的:

set serveroutput on;
DECLARE 
  cursor h is select * from MyC;
  type htype is table of h%rowtype index by number;

  stage_tab htype;
  master_tab htype;
BEGIN 
  open h;
  loop  
      fetch h bulk collect into stage_tab limit 500;

      for i in 1 .. stage_tab.count loop
          master_tab(stage_tab(i).id) := stage_tabe(i);
      end loop;

      exit when h%notfound;
  end loop;
  close h;

end;

1 个答案:

答案 0 :(得分:10)

你不能这样做吗?

UPDATE myC
    SET myCheight = myCwidth,
        myCwidth = myCheight
    WHERE myCheight > myCwidth