如何使用双重LTRIM加入

时间:2019-05-23 11:51:00

标签: sql oracle join

我正在尝试通过特定的代码联接两个表,但是在主表中 我必须修剪一些数字字符('858','859')才能正确连接到第二个表。(ca1) 我只需要专门修剪这两个数字字符

enter image description here“表格”

我尝试了几件事。包括:

JOIN T2 ON (LTRIM(t1.code, '859') AND LTRIM(t1.code, '859') = t2.code 

导致错误:

  

无效的关系运算符

我希望能够成功加入这种LTRIM组合,但是没有成功;

1 个答案:

答案 0 :(得分:2)

TRIM()不能满足您的需求。

ON (t2.code = t1.code AND SUBSTR(t1.code, 1, 3) NOT IN ('858', '859')) OR
   (t2.code = SUBSTR(t1.code, 4) AND SUBSTR(t1.code, 1, 3) IN ('858', '859'))

或者,您可以将其表示为:

ON t1.code IN (t2.code, '858' || t1.code, '859' || t2.code)

这种更简单的表述不是完全相同。如果t2.code都具有'8581' and '1',则两者都将与'8581'中的t1.code相匹配。我想您的数据中不会出现这种情况。

我应该提醒您,在OR条件下使用JOIN或函数调用确实会降低性能。