【发布时间】:2017-12-10 22:23:13
【问题描述】:
我正在寻找文件中的重复记录 我需要比较 27 个字段它们都在一行中 有没有一种方法可以比较它们而无需将每个记录都输入(一种将记录格式子串化的方法数据)
我正在使用
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)
我知道我可以将它们全部连接在一起,但这仍然意味着要输入所有字段名称,我只想要一个更短更简洁的选择。
【问题讨论】:
-
您可能正在寻找
INTERSECT。 -
INTERSECT 仍然要求所有列都在语句中
-
这就是 SQL 的工作原理。您可以通过过程或外部代码生成 SQL 语句并为您执行它,因为您正在徘徊在动态 SQL 的世界中。
标签: sql substring concatenation ibm-midrange