2017-07-06 11 views
0

ファイル内に重複したレコードがあります。27フィールドがあります。比較するには、すべてが一列に並んでいます。レコード形式のデータをサブストリングにする方法)SQL 27フィールドを1フィールドとして比較する

私は

Select RRN(a), 
     RRN(b) 
From fileX a 
Inner Join fileX b 
    On RRN(a) < RRN(b) 
     And a.FLD1 = b.FLD1 
     And a.FLD2 = b.FLD2 
     And a.FLD3 = b.FLD3 
     And a.FLD5 = b.FLD5 
     And a.FLD6 = b.FLD6 
     And a.FLD7 = b.FLD7 
     And a.FLD8 = b.FLD8 
     And a.FLD9 = b.FLD9 
     And a.FLD10 = b.FLD10 
     And a.FLD11 = b.FLD11 
     And a.FLD12 = b.FLD12 
     And a.FLD13 = b.FLD13 
     And a.FLD14 = b.FLD14 
     And a.FLD15 = b.FLD15 
     And a.FLD16 = b.FLD16 
     And a.FLD17 = b.FLD17 
     And a.FLD18 = b.FLD18 
     And a.FLD19 = b.FLD19 
     And a.FLD21 = b.FLD21 
     And a.FLD22 = b.FLD22 
     And a.FLD23 = b.FLD23 
     And a.FLD24 = b.FLD24 
     And a.FLD25 = b.FLD25 
     And a.FLD26 = b.FLD26 
     And a.FLD27 = b.FLD27 

を使用しています私は私がすべてを一緒に連結することも可能だろうが、それはまだタイピングを意味

Select RRN(a), 
     RRN(b) 
From fileX a 
Inner Join fileX b 
    On RRN(a) < RRN(b) 
     And substr(A.RCDFMT, 100, 54) = substr(B.RCDFMT, 100, 54) 

を使用したいですすべてのfiを出す名前は、私はちょうどより短いクリーナー探して選択します。

+0

「INTERSECT」を探している可能性があります。 – Siyual

+0

INTERSECTは依然としてすべての列をステートメントに含める必要があります –

+0

これはSQLの動作方法です。プロシージャーや外部コードを使用して、動的SQLの世界に侵入しているので、SQLステートメントを生成して実行することができます。 – JNevill

答えて

0

27個のフィールドを1つのフィールドに連結したビューを作成します。

27個のフィールドが1つのフィールドに連結された論理ファイルを作成します。

create view mylib/myview as 
select a.fld1 || a.fld2 || a.fld3 
... 
as allfld 
from mylib/myfile. 
関連する問題