2012-01-20 14 views
0

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

この質問は、このoneに基づいているが、Oracleにいくつかの変更で:

まず1この表には、または他のテーブルとの多くの関係に 1、1に多くの、多くの多くを持っていない可能性があります。

編集1:

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

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

+1

- どのようなあなたのテーブルには見えますか?あなたが検索しようとしている結果は何ですか?異なったステータスのテーブルに複数回現れる 'ID'値のリストを望みますか?ステータスも取得しますか?他の列を取得しますか?特定のIDが5つの異なるステータスまたは10の異なるステータスで存在する場合、結果セットはどのように見えるでしょうか? –

+1

したがって、 'ID'を取り込むストアド関数を必要とし、同じIDでテーブル内に2つ以上の行が同じでない場合はTRUEを返し、それ以外の場合はFALSEを返します。 –

+0

ええ、それは私が欲しいものです。 –

答えて

2

選択の次の形式は、DUPのためにテストします:

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

あなたはまた、自己自身にテストテーブルを結合するか、使用することができますMINUS Fioradu88 @

関連する問題