Oracle SQL:比较 2 列中的所有值并交换它们
Posted
技术标签:
【中文标题】Oracle SQL:比较 2 列中的所有值并交换它们【英文标题】:Oracle SQL: Compare all values from 2 columns and exchange them 【发布时间】:2011-07-15 14:50:12 【问题描述】:我有一个 Oracle 数据库,其中有一个名为 myC
的表。在这张表中,我有几行,其中两个名为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】:你不能这样做吗?
UPDATE myC
SET myCheight = myCwidth,
myCwidth = myCheight
WHERE myCheight > myCwidth
【讨论】:
+1:同意。SET myCheight = myCwidth
没有在 myCwidth = myCheight
之前完成,它们“似乎”同时发生。
+1。您还可以添加一个标志:“不要在家里(或 mysql)尝试这个”以上是关于Oracle SQL:比较 2 列中的所有值并交换它们的主要内容,如果未能解决你的问题,请参考以下文章
有没有更好的方法来编写这个处理比较两个不同列中的日期的 Oracle SQL?
循环遍历列中的数据框值并使用 SQL 将它们用作 FROM 子句
在 Oracle PL/SQL 中,当列的其余值相等时,我可以交换表中两个不同行的同一列的值吗?