Sql server 2008 连接两个邮政编码表以提供SQL Server 2008的详细视图

Sql server 2008 连接两个邮政编码表以提供SQL Server 2008的详细视图,sql-server-2008,join,Sql Server 2008,Join,我有两个包含邮政编码详细信息的表,第一个表本质上是一个只包含邮政编码第一部分的高级表(示例PR2、LL4),以此类推。第二个表是街道级别的邮政编码表,因此它包含完整的邮政编码(PR22JY,LL35GN) 我想做一个连接,以便他们在街景邮政编码上连接。在过去,我使用了CHARINDEX返回第一部分,但是street表作为一个字符串,没有空格,我无法仅根据前3个字符进行匹配,因为有些邮政编码有3个,有些邮政编码有4个 有人有什么建议吗?我只会使用代理键-不要依赖实际的邮政编码作为参考,使用系统给定

我有两个包含邮政编码详细信息的表,第一个表本质上是一个只包含邮政编码第一部分的高级表(示例PR2、LL4),以此类推。第二个表是街道级别的邮政编码表,因此它包含完整的邮政编码(PR22JY,LL35GN)

我想做一个连接,以便他们在街景邮政编码上连接。在过去,我使用了
CHARINDEX
返回第一部分,但是street表作为一个字符串,没有空格,我无法仅根据前3个字符进行匹配,因为有些邮政编码有3个,有些邮政编码有4个


有人有什么建议吗?

我只会使用代理键-不要依赖实际的邮政编码作为参考,使用系统给定的、单独的
ID

我会设计这样的桌子:

PostcodeDetail
表通过
PostCodeID
列引用
PostcodeHighlevel
表(这对两个表都是通用的-它是高级表中的主键,是详细表中的外键)

当然:您可以根据需要轻松地向这些表中添加更多的列(例如,城市/地区的名称-您需要的任何名称)

我的观点是:不要依赖实际的邮政编码来连接两个表-使用代理列来处理这个问题。这样,您就不需要执行任何
子字符串
CHARINDEX
操作来连接两个表-这些操作也会降低连接性能….

尝试以下操作:

select * from postcode pc inner join postcodedetails pcd on pcd.postcode like pc.postcode'%'

这不需要我用高级表中的ID更新邮政编码等级表吗?