Oracle SQL:比较 2 列中的所有值并交换它们

发布于 2024-11-24 02:57:31 字数 684 浏览 2 评论 0原文

我有一个 Oracle 数据库,其中有一个名为 myC 的表。在此表中,我有几行,其中两行名为 myCheight、myCwidth

我需要读取这些值并像 IF myCheight > 中那样比较它们myCwidth DO 切换值。

我尝试从一行读取值,但没有成功。我使用 Oracle 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;

I have a Oracle DB with a table called myC. In this table I have a few row, two of them called myCheight, myCwidth.

I need to read these values and compare them like in IF myCheight > myCwidth DO switch the values.

I tried to read values from one row but didnt get it to work. I use Oracles Oracle SQL Developer.

This is what i came up with so far:

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨落□心尘 2024-12-01 02:57:31

你就不能这样做吗?

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

Can't you just do this?

UPDATE myC
    SET myCheight = myCwidth,
        myCwidth = myCheight
    WHERE myCheight > myCwidth
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文