首页 > 解决方案 > 连接具有不同数据类型的 2 个表

问题描述

我正在尝试加入 2 个具有不同数据类型的表。数据是相同的,但表是使用不同数据类型的数据设置的,即 int 和 string。对于下面的示例,我想提取城市和人口。我没有创建表,也无权更改它们。

表格1

邮政编码:'12345'(数据类型字符串)

人口:99

表 2

邮政编码:12345(数据类型 int)

城市:丹维尔

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;

谢谢

标签: sqldatabasesqldatatypes

解决方案


邮政编码不应存储为数字!只需向马萨诸塞州或波多黎各的任何人询问前导零的重要性即可。我怀疑您在其他使用数字邮政编码的国家/地区也有类似的问题。

我的建议是你修复数据。您没有指定您正在使用的数据库,但您应该将整数邮政编码更改为带有前导零的五位数邮政编码。

您可以通过转换在短期内解决问题。我建议转换为数字:

cast(table2.zip as int) = table1.zip

但是,如果您在table2.


推荐阅读