Oracle SQL: сравните все значения из 2 столбцов и обменяйтесь ими - PullRequest
1 голос
/ 15 июля 2011

У меня есть БД Oracle с таблицей под названием myC. В этой таблице у меня есть несколько строк, две из которых называются myCheight, myCwidth.

Мне нужно прочитать эти значения и сравнить их, как в IF myCheight > myCwidth DO switch the values.

Я пытался прочитать значения из одной строки, но не дал работать. Я использую Oracle Oracle Developer Oracles.

Это то, что я придумал до сих пор:

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 Ответ

10 голосов
/ 15 июля 2011

Разве вы не можете просто сделать это?

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