2011-06-22 170 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 *按鈕才能得到實際答案。您應該修改原始問題以添加其他信息,或發佈新問題。 –

相關問題