0

我需要创建一个存储过程来处理一个表,以查找与具有不同状态的特定 id 匹配的行。
我知道获取行数据的语法,但我之前从未尝试过比较同一张表中的 2 行?它是如何完成的?我需要使用变量来存储每个变量的数据吗?还是其他方式?

这个问题是基于这个问题但在 Oracle 上做了一些修改:

第一个此表可能与其他表具有多对多、多对一、一对多关系,也可能不存在。

编辑1:

表如下所示:
create table Test(
id char32 not null,
column1 varchar2(2048),
column2 varchar2(2048),
...
column30 varchar2(2048) )

任何列中的任何差异都会导致它们不同。存储过程将仅返回关于它们是否相同的真或假。

4

1 回答 1

2

以下形式的 select 将测试 dups:

select id ,
column1 ,
column2 ,
...
column30 ,
count(*)
from test
group by id ,
column1 ,
column2 ,
...
column30
having count(*) > 1
;

您也可以将测试表自行加入或使用 MINUS

于 2012-01-20T20:19:47.493 回答