如何解决连接2个不同数据类型的表
我正在尝试连接具有不同数据类型的 2 个表。数据是相同的,但表的设置数据是不同的数据类型,int 和 string。对于下面的示例,我想提取城市和人口。我没有创建表,也无权更改它们。
表一
邮政编码:'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;
谢谢
解决方法
邮政编码不应存储为数字!问问马萨诸塞州或波多黎各的任何人关于前导零的重要性。我怀疑您在使用数字邮政编码的其他国家/地区也有类似问题。
我的建议是您修复数据。您没有指定您正在使用的数据库,但您应该将整数邮政编码更改为带前导零的五位邮政编码。
您可以通过转换在短期内解决问题。我建议转换为数字:
cast(table2.zip as int) = table1.zip
但是,如果您在 table2
中有格式错误的 zip 文件,您可能会收到转换错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。