2017-07-06 40 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個字段連接成一個字段。

創建一個邏輯文件,其中27個字段連接成一個字段。

create view mylib/myview as 
select a.fld1 || a.fld2 || a.fld3 
... 
as allfld 
from mylib/myfile. 
相關問題