gpt4 book ai didi

sql - 对产品 UPC varchar(20) 进行 JOIN 的最佳方法?

转载 作者:行者123 更新时间:2023-12-02 06:56:36 25 4
gpt4 key购买 nike

我正在尝试对两个表进行 JOIN。每个表都包含来自不同数据源的 UPC varchar2(20)。

使此 JOIN 有点困难的是 UPC 值的大小可能不同,有时可以用前导零填充,有时则不能。所有都包含尾随校验位。

例如:

        Table 1               Table 2
UPC "00000123456789" "123456789"
"234567890" "234567890"
"00000003456789" "00000003456789"
"3456799" "00000003456799"

我的想法是将每个转换为 long,然后进行比较。或者我可以附加前导零。或者做一个包含。

使用 SQL 进行连接的最佳方法是什么?

最佳答案

你可以试试这个:

select * from 
table1 inner join table2
on (CAST(CAST(table1.UPC AS BIGINT) AS VARCHAR))
=(CAST(CAST(table2.UPC AS BIGINT) AS VARCHAR))

SQL FIDDLE DEMO

select * from 
table1 inner join table2
on (RIGHT(table1.UPC,(LEN(table1.UPC) - PATINDEX('%[^0]%',table1.UPC)) + 1))
=(RIGHT(table2.UPC,(LEN(table2.UPC) - PATINDEX('%[^0]%',table2.UPC)) + 1))

SQL FIDDLE DEMO

关于sql - 对产品 UPC varchar(20) 进行 JOIN 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com