标题很难选择我的措辞。
我有2个表要通过lg_code连接在一起。两列都是VARCHAR2(4字节)。我遇到了一个问题,其中table1 lg_code = 0003和table2 lg_code =3。三个0导致联接出现问题,并且未返回所需的所有数据。我将如何编写join子句来解决此问题?
代码:
select * from table1 t1 JOIN table2 t2 ON t1.LG_CODE = t2.LG_CODE
答案 0 :(得分:1)
我建议先将列lg_code
的值转换为数字,然后再进行联接:
SELECT * FROM table1 t1
JOIN table2 t2 ON to_number(t1.LG_CODE) = to_number(t2.LG_CODE)
答案 1 :(得分:0)
您也可以在它们上使用ltrim():
SELECT * FROM table1 t1
JOIN table2 t2 ON LTRIM(t1.LG_CODE, '0') = LTRIM(t2.LG_CODE, '0');
但是在较新版本的oracle SQL * PLUS中,它会自动修剪。