如何仅从SQL中的地址提取文本

时间:2019-05-31 19:33:44

标签: sql sql-server

我有一个表,其中包含一个名为“地址”的列。我想提取诸如街道名称,建筑物之类的文本,以及不包含数字和特殊字符的任何东西。该数字可以在地址的开头,结尾和中间的任意位置。表格示例如下:

Address
5734 N STATE RD
111 ARROWHEAD DR
ROBINSON ST 817 
7569 MILL ST
196 MINNETONKA DR
2780 RAY BLVD
8257 MEADOWWOOD DR
N COSTNER CT SE 6118 
810 S FRONT ST
7950 US HIGHWAY 27 S APT 4B 
17248 SANDGATE PL
7950 US HIGHWAY 27 S APT 1B 
17248 SANDGATE PL
23984 HOOKER DR
5272 OAKHILL DR
15528 CLOVERNOOK DR APT 2A
110 E ELM ST
4534 DOWNING ST
CAMP TANUGA RD NE 6385 
220 S MUENSCHER ST
645 N 2ND ST
2217 BUCKWHEAT LN
405 SUNSET LN
KING RD 11576 
1015 HOMECREST AVE
APPLE LN 143

结果表应如下所示,其中仅包含文本。

Address
N STATE RD
ARROWHEAD DR
ROBINSON ST
MILL ST
MINNETONKA DR
RAY BLVD
MEADOWWOOD DR
N COSTNER CT SE
S FRONT ST
US HIGHWAY S APT B
SANDGATE PL
OHN ST
HOOKER DR
OAKHILL DR
CLOVERNOOK DR APT A
E ELM ST
DOWNING ST
CAMP TANUGA RD NE
S MUENSCHER ST
N ND ST
BUCKWHEAT LN
SUNSET LN
KING RD
HOMECREST AVE
APPLE LN

我从网上获得了以下代码

declare @strValue VARCHAR(256) = 'ascdh12356.gs79hks@@@sdkj' 
declare @CharPos INT
set @CharPos = patindex('%[0-9]%', @strValue)
while @CharPos > 0
begin
set @strValue = stuff(@strValue, @CharPos, 1, '')
set @CharPos = patindex('%[0-9]%', @strValue )
end
select @strValue

Result: ascdh.gshks@@@sdkj

可以看到它运行良好。但是,我不确定如何在SQL表中使用它。请使用表格作为参考,并指导我如何设置查询格式或显示获取结果的另一种方法。谢谢

0 个答案:

没有答案