我有一个数据集
和另一个查询表
借助以下查询
SELECT Col1, Col2, Col3, Col4, a.RefC4, b.RefC4, c.RefC4
from Tab1 LEFT OUTER JOIN (
SELECT * from Ref1 where RefC2 = 'A1') a on Col2 = RefC3
LEFT OUTER JOIN (
SELECT * from Ref1 where RefC2 = 'A2') b on Col3 = RefC3
LEFT OUTER JOIN (
SELECT * from Ref1 where RefC2 = 'A4') c on Col4 = RefC3;
我正在获取数据集以下
在此示例中,我有45个值需要针对其进行查找以丰富其他列(Col5,Col6,Col7)。如果使用左外部联接,查询将变得太长且难以维护。我尝试了多种方法,但是由于一个或其他配置单元的限制,我无法以更短的时间来优化它。
我无法将OR
与联接一起使用,并且我不想使用row_number()来增加周转时间。
Select ....
from Tab1 LEFT OUTER JOIN (
SELECT * from Ref1) a on (RefC2 = 'A1' and Col2 = RefC3)
or (RefC2 = 'A2' and Col3 = RefC3)
or (RefC2 = 'A4' and Col4 = RefC3);
请建议以其他方式以更优化,更短的方式编写此查询。