2011-06-22 89 views
0

我必须将城市州和邮政编码从地址栏中分离出来,如下所示。来自地址SQL的独立城市,州和邮政编码SQL

有时城市名称可能会丢失或州或邮编。

有时在地址栏中只有城市,州和邮政编码。

请帮我解决这个问题。

Adress       
PO BOX 28087 RALEIGH, NC 27611  
PO BOX 671 NASHVILLE, TN 37202  

回答

0

Amrutha, 请不要提这个地址,你说的是文本形式,或者你有一个排序的表单字段来输入这些...

无论如何,如果它的文本形式,我如果这些字段作为单个字符串保持在一起,那么SQL将无济于事。你必须使用某种文本提取脚本(例如perl,awk)。

+0

是的,这些字段作为单个字符串保持在一起。 Colud你请解释我如何使用提取脚本。但是我需要在SSMS2008中解决这个问题。 – Pearl

+0

sry,不能帮你在这方面...据我所知sql语言主要用在流行的dbms平台上,包括mssql无法处理这种事情。你需要使用通用的语言(比如C,Java),你将嵌入你的sql代码。 –

0
declare @Cities varchar(200) 
declare @Count int 
declare @Adress varchar(52) 
set @Adress = '5129 TWISTED WILLOW CREEDMOOR NC' 
declare @i int 
set @i = 0 
declare @j int 
set @j = 1 
set @Count = 0 
declare @city varchar(20) 
set @city = '' 
set @Cities = 'RALEIGH.CARY.FOUR OAKS.CREEDMOOR' 
while(@i < =LEN (@cities)) 
begin 
    if(SUBSTRING(@cities,@i,1) = ',') 
    set @count = @count+1 
    set @i = @i+1 
end 
while(@j <=5) 
begin 
declare @s varchar(20) 
set @s = PARSENAME(@cities,@j) 
    if(PATINDEX('%'[email protected]+'%',@Adress) >0) 
    set @city = PARSENAME(@cities,@j) 

    set @j = @j +1 
end 


select @city 

我发现上面的解决方案,但我应该将所有的城市名称添加到字符串@cities。 他们的任何其他方式很容易吗?

+1

请仅使用* Post answer *按钮才能得到实际答案。您应该修改原始问题以添加其他信息,或发布新问题。 –

相关问题