我正在尝试连接两个具有不同数据类型的表。数据是相同的,但是表是用不同的数据类型、int和string来设置的。对于下面的例子,我想拉取城市和人口。我没有创建该表,也没有权限更改它们。
表1
邮政编码:'12345‘(数据类型字符串)
人口: 99
表2
邮政编码: 12345 (数据类型为整型)
城市:丹维尔
SELECT
table1.population,
table2.city
FROM table1
JOIN table2
on tabel1.zip as CAST(table2.zip AS VARCHAR(5))
WHERE table2.city = 'Danville'
Group by 1,2;谢谢
发布于 2021-06-30 03:37:25
邮政编码不应存储为数字!只要问问马萨诸塞州或波多黎各的任何人关于前导零的重要性就知道了。我怀疑您在其他使用数字邮政编码的国家也有类似的问题。
我的建议是修复数据。您没有指定您正在使用的数据库,但是您应该将整数邮政编码更改为带有前导零的五位邮政编码。
您可以通过转换在短期内解决此问题。我建议您转换为一个数字:
cast(table2.zip as int) = table1.zip但是,如果table2中存在格式错误的zips,则可能会出现转换错误。
https://stackoverflow.com/questions/68184420
复制相似问题