0

異なるステータスを持つ特定の ID に一致する行を検索するテーブルを処理するストアド プロシージャを作成する必要があります。
行データを取得する構文は知っていますが、同じテーブルの 2 つの行を比較したことはありませんか? それはどのように行われますか?それぞれのデータを格納するために変数を使用する必要がありますか? それとも他の方法ですか?

この質問は this oneに基づいていますが、いくつかの変更を加えたOracleに基づいています:

まず、このテーブルには、他のテーブルとの多対多、多対 1、1 対多の関係がある場合とない場合があります。

編集1:

表は次のようになります。
create table Test(
id char32 not null,
column1 varchar2(2048),
column2 varchar2(2048),
...
column30 varchar2(2048) )

いずれかの列に違いがあると、それらが異なることになります。ストアド プロシージャは、同一かどうかに関して true または false のみを返します。

4

1 に答える 1

2

次の形式のselectは、重複をテストします。

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

テストテーブルをそれ自体に自己結合したり、マイナスを使用したりすることもできます

于 2012-01-20T20:19:47.493 に答える