【发布时间】:2020-08-15 15:57:08
【问题描述】:
我要连接两个表,第一个表主键数据类型是数字,第二个表主键数据类型是 VARCHAR2(30 BYTE)。如何连接两个表。
我试过这段代码,但第二个表的所有值都是空的。这是为什么呢?
SELECT a.act_phone_no,a.act_actdevice,a.bi_account_id, a.packag_start_date, c.identification_number,
FROM ACTIVATIONS_POP a
left JOIN customer c
on TO_CHAR(a.act_phone_no) = c.msisdn_voice
第一张桌子
act_phone_no bi_account_id
23434 45345
34245 43556
第二张桌子
msisdn_voice identification_number
23434 321113
34245 6547657
【问题讨论】:
-
换个方式试试
a.act_phone_no = TO_NUMBER(c.msisdn_voice) -
听起来msisdn_voice 包含不可见字符。您可以使用
DUMP进行检查,例如选择 msisdn_voice, dump(msisdn_voice) from customer where msisdn_voice like '%23434%'; -
你为什么不给我们看一个完整的测试用例?您的 SELECT 引用的列名称未出现在您声称要显示的任何一个(未识别的)表中。一个测试用例包括创建必要表的实际 ddl,以及用最少的测试数据填充它们的实际 INSERT。