Select 提取基于国外和国内的邮政编码
Select to pull Zip code based both foreign and domestic
我需要编写一个 T-SQL 程序,其中参数是邮政编码。我们声明了以下参数。
declare @postal_code varchar(10)
table中的示例数据:
postal_codes
NULL
46383
074523632
B4H34
113601419
ZH/8600
A1G 9Z9
WN73R
Wd3 3he
89136
等我们有多种地址,有些地址没有某些外国的邮政编码,有些则有标准的 5 位或 10 位美国邮政编码。
我需要以某种方式对查询进行编码:
select *
from table_name
where postal_code = @postal_code
我的初始代码是这样的:
select *
from table_name
where (@postal_code is null or
left(ad.postal_code, 5) = @postal_code)
但这对除 5 位以外的任何其他内容都不起作用,然后我尝试使用 10 位,但 5 位不匹配。我需要去除空格或其他字符吗?我尝试搜索并找到了多种解决方案,但我需要适用于国内外各种邮政编码的解决方案。
根据您最后的评论,您似乎需要一个“开头为”查询。试试这个
SELECT *
FROM table_name
WHERE REPLACE(postal_code, ' ', '') LIKE REPLACE(@postal_code, ' ', '') + '%';
我需要编写一个 T-SQL 程序,其中参数是邮政编码。我们声明了以下参数。
declare @postal_code varchar(10)
table中的示例数据:
postal_codes |
---|
NULL |
46383 |
074523632 |
B4H34 |
113601419 |
ZH/8600 |
A1G 9Z9 |
WN73R |
Wd3 3he |
89136 |
等我们有多种地址,有些地址没有某些外国的邮政编码,有些则有标准的 5 位或 10 位美国邮政编码。
我需要以某种方式对查询进行编码:
select *
from table_name
where postal_code = @postal_code
我的初始代码是这样的:
select *
from table_name
where (@postal_code is null or
left(ad.postal_code, 5) = @postal_code)
但这对除 5 位以外的任何其他内容都不起作用,然后我尝试使用 10 位,但 5 位不匹配。我需要去除空格或其他字符吗?我尝试搜索并找到了多种解决方案,但我需要适用于国内外各种邮政编码的解决方案。
根据您最后的评论,您似乎需要一个“开头为”查询。试试这个
SELECT *
FROM table_name
WHERE REPLACE(postal_code, ' ', '') LIKE REPLACE(@postal_code, ' ', '') + '%';