表A有21列,第1列是id,第2列 - 第21列是d1-d20,100k行
表B与表A具有相同的结构,但它有50k行
查找表A和表B中的所有数据:
答案 0 :(得分:0)
您可以使用CASE语句。以下应该适合你。试着让我知道。
表t1和t2。为简单起见,我只将列保持为3。
Select t12.myID
from
(Select t1.ID as myID, t2.*, Case when
t1.d1 = t2.d1 and t1.d2 = t2.d2 and t1.d3 = t2.d3
then 'A'
else
Case when
Length(Replace(Concat(Case When t1.d1 = t2.d1 then '0' else '1' end
,Case When t1.d2 = t2.d2 then '0' else '1' end
,Case When t1.d3 = t2.d3 then '0' else '1' end),'0','')) = '1'
then 'B'
else
'C'
end
end as mc
from t1, t2
Where t1.ID = t2.ID) t12
Where t12.mc IN ('A', 'B');