我正在尝试根据英国邮政编码的前两位数加入两个表格。我遇到的问题是,我表中的所有邮政编码都不是以两个字母开头的。例如:
Table 1
Birmingham B
Bath BA
Table 2
B5 5NR
BA1 2BX
如果我要使用LEFT加入(邮政编码,2),我将排除伯明翰。如果我要使用LEFT加入(邮政编码,1),我将排除巴斯。有没有办法只采取邮政编码的第一个文本部分?
非常感谢
答案 0 :(得分:2)
您可以尝试以下查询,假设第二个表包含我们需要切断以提取邮政编码的邮政编码之后的数字。
SELECT Name,A.Code,B.Code,B.Val
FROM table1 A
JOIN table2 B ON A.Code =LEFT(B.Code,PATINDEX('%[0-9]%',B.Code)-1)
答案 1 :(得分:0)
由于表1中的邮政编码较短,您是否尝试过表1中邮政编码长度的子字符串。
像SubString(table1.postcode,0,length(table1.postcode))
这应该作为连接条件。试试吧。
答案 2 :(得分:0)
这将消除SQL Server中字符串的最后一个字符:
LEFT(Postcode,LEN(Postcode)-1)