あなたの助けが必要です。
SQL Server 2005 の正規表現を使用して、住所の家番号を取得します。すべて正常に動作します。しかし、私はいくつかの方向に問題があります。
たとえば、私は住所を持っており、Florecita Terrace 1746-B floor 3
あなたが得る家の番号は です1746-B
が、同じ住所を次のように書くことができます:Florecita Terrace 1746 B floor 3
そして、この方向で家番号を取得し1746
、文字を失いますB
。 "
取得するにはクエリを変更する必要があり1746 B
ますか?
これは(家の番号)を取得します:
Florecita Terrace 1746 B floor 3 | **1746**
これは取得する必要があります(家番号):
Florecita Terrace 1746 B floor 3 | **1746 B**
これは私が使用するクエリです:
declare @address table (address varchar(100))
insert into @address
select 'Florecita Terrace 1746 B floor 3' union
select 'Florecita Terrace 1746-B blablabla' union
select 'Street Flor 4141'
select
address,
--patindex('%[0-9]%', address) as 'start',
--charindex(space(1), address + space(1), patindex('%[0-9]%', address)) - (patindex('%[0-9]%', address)) as 'length',
case
when patindex('%[^0-9]%' , address) > 0
then substring(address, patindex('%[0-9]%', address), charindex(space(1), address + space(1), patindex('%[0-9]%', address)) -
(patindex('%[0-9]%', address)))
else address
end as 'numeric'
from @address
ご助力ありがとうございます!