我需要创建一个存储过程来处理一个表,查找与具有不同状态的特定id匹配的行 我知道获取行数据的语法,但我从未尝试过比较同一个表中的2行?怎么做?我是否需要使用变量来存储每个数据?或者其他一些方式?
此问题基于此one,但在Oracle上进行了一些修改:
第一个这个表可能有也可能没有多对多,多对一, 与其他表格的一对多关系。
编辑1:
表格如下:
create table Test(
id char32 not null,
column1 varchar2(2048),
column2 varchar2(2048),
...
column30 varchar2(2048)
)
任何列中的任何差异都会导致它们不同。 如果存储过程相同或不相同,则存储过程将仅返回真或假。
答案 0 :(得分:2)
以下形式的选择将测试重复:
select id ,
column1 ,
column2 ,
...
column30 ,
count(*)
from test
group by id ,
column1 ,
column2 ,
...
column30
having count(*) > 1
;
您也可以自行加入测试表或使用MINUS