有没有办法比较两种不同类型的数据?
例如,我正在尝试使用两个不同的列来 LEFT JOIN
两个表 A 和 B。表 A 的键是 ProductNumber,它已作为文本输入到数据库中(我无法编辑) ,而表 B 的键是 StoreProductNumber,它是数字数据。
如果我使用 a LEFT JOIN b ON a.ProductNumber LIKE b.StoreProductNumber
这是否允许我使用这两个来加入?
以前,当我在 Access 和 SSMS 中尝试时,我收到一个错误,提到这两列是如何由不同类型的数据组成的。
原文由 nola94 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果 ProductNumber 可以包含比 StoreProductNumber 更多的内容:
显然,您可以修改
n
以确保您的 StoreProductNumber 不会被截断。但是,如果保证它们是相同的(只是不同的数据类型),您可以直接比较它们:
如果您不需要
BIGINT
,您可以使用INT
或任何您需要的数据类型。最后,正如 HLGEM 指出的那样,SQL 将为您进行隐式转换,因此从技术上讲,这也可以:
但是,为了清楚起见,我更喜欢明确地进行所有转换,所以我建议不要使用这种方法。