关于 char(10) 与 varchar(20) 两个类型的字段的比较 (oracle 数据库):
有两个表:
A表:
a_id : int
a_code : char(10) = '123'
a_name : varchar(50)
B表:
b_id : int
b_code : varchar(20) = '123'
b_name : varchar(50)
现需要 使用 code 字段关联这两个表:
一开始,我错误的写成:
发现没有结果为空。
经仔细的研究,正确的写法为(与格式无关):
这样,结果出来了,半天的时间学会的小技巧。
有两个表:
A表:
a_id : int
a_code : char(10) = '123'
a_name : varchar(50)
B表:
b_id : int
b_code : varchar(20) = '123'
b_name : varchar(50)
现需要 使用 code 字段关联这两个表:
一开始,我错误的写成:
select * from a left join b on a.a_code = b.b_code发现没有结果为空。
经仔细的研究,正确的写法为(与格式无关):
select *
from a
left join b
on a.a_code = CAST( trim( substr( b.b_code, 0, 10) ) AS char(10) ) 这样,结果出来了,半天的时间学会的小技巧。
本文介绍在Oracle数据库中,如何正确地将CHAR(10)类型字段与VARCHAR(20)类型字段进行关联匹配,通过具体示例展示了使用CAST与TRIM函数确保不同字段类型能够准确对比的方法。
1093

被折叠的 条评论
为什么被折叠?



