首页 > 解决方案 > 在 Oracle 中删除或添加前导 0 以匹配另一个值

问题描述

我在这个网站上发现了许多与我的问题相关的类似问题,但我找不到我的确切问题的答案。我在控制号上将表 A 加入表 B。表 A 有一些控制编号为 6 位,其他控制编号为 7。表 B 只有 7。

   Table A      Table B
  0000714       0000714
  285073        0285073

我试过做一个 ltrim:

   select ltrim(control_number, '0000000') as control_number from Table B

但这会删除前导 0,无论控制号中有多少位。012345 等值变为 12345。

我只需要一个可以匹配两个表中的控制号的查询。

   select a.*, b.*
   from Table A
   inner join Table B
   on a.control_number = b.control_number

标签: sqloracleleading-zero

解决方案


Since you said you are having issues in casting, You may try extended functionality of TRIM function as -

SELECT a.*, b.*
  FROM Table_A
 INNER JOIN Table_B ON TRIM(LEADING '0' FROM a.control_number) = TRIM(LEADING '0' FROM b.control_number)

推荐阅读