sql - 在 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
解决方案
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)
推荐阅读
- azure - 尝试从 Azure Blob 存储下载文件时出现 TimeoutException
- objective-c - Objective C - 以编程方式推送到不在 tabBarController 选项卡中的视图控制器
- css - 如何使用 Tailwind CSS 在表格中居中图像?
- python - sklearn 管道索引不匹配
- c - 如何将此数字表示形式转换为浮点数?
- python-3.x - 跨平台动态终端打印
- java - 焦点转移后执行 Runnable 的正确方法
- linux - 如何从 horsicq github 在 ubuntu 20.04 上轻松构建检测它?
- c++ - 为什么默认复制构造函数不适用于此类
- c++ - 用 char 符号复制 char*