sqlserver外部目录,两边都是一笔,内关联却关联出了三笔,且右表是三笔不同的关联值,这是什么原因?Doris底层是怎么转的?
两个关联字段的类型
在sqlserve上: m.oid_pt_mstr 是varchar(50);r.oid2_pt_mstr是numeric(38,10)
在Doris外部目录上是:
DESC sqlserver_catalog_qad_dcprod.dbo.pt_mstr oid_pt_mstr text sqlserver
DESC sqlserver_catalog_qad_dcprod.dbo.xpt_ref oid2_pt_mstr decimal(38,10)
select m.oid_pt_mstr,r.oid2_pt_mstr
from sqlserver_catalog_qad_dcprod.dbo.pt_mstr m
inner join sqlserver_catalog_qad_dcprod.dbo.xpt_ref r
on m.oid_pt_mstr=r.oid2_pt_mstr
where m.oid_pt_mstr = '201712270000310006.0009'
关联出来的值如下
201712270000310006.0009 201712270000309992.0009000000
201712270000310006.0009 201712270000310006.0009000000
201712270000310006.0009 201712270000310020.0009000000
经过测试,发现以下强转类型之后,就正常了
select m.oid_pt_mstr,r.oid2_pt_mstr
from sqlserver_catalog_qad_dcprod.dbo.pt_mstr m
inner join sqlserver_catalog_qad_dcprod.dbo.xpt_ref r
on CAST(m.oid_pt_mstr AS DECIMAL(38,10))=r.oid2_pt_mstr
where m.oid_pt_mstr = '201712270000310006.0009'
输出
201712270000310006.0009 201712270000310006.0009000000