我必須將城市州和郵政編碼從地址欄中分離出來,如下所示。來自地址SQL的獨立城市,州和郵政編碼SQL
有時城市名稱可能會丟失或州或郵編。
有時在地址欄中只有城市,州和郵政編碼。
請幫我解決這個問題。
Adress
PO BOX 28087 RALEIGH, NC 27611
PO BOX 671 NASHVILLE, TN 37202
我必須將城市州和郵政編碼從地址欄中分離出來,如下所示。來自地址SQL的獨立城市,州和郵政編碼SQL
有時城市名稱可能會丟失或州或郵編。
有時在地址欄中只有城市,州和郵政編碼。
請幫我解決這個問題。
Adress
PO BOX 28087 RALEIGH, NC 27611
PO BOX 671 NASHVILLE, TN 37202
Amrutha, 請不要提這個地址,你說的是文本形式,或者你有一個排序的表單字段來輸入這些...
無論如何,如果它的文本形式,我如果這些字段作爲單個字符串保持在一起,那麼SQL將無濟於事。你必須使用某種文本提取腳本(例如perl,awk)。
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。 他們的任何其他方式很容易嗎?
請僅使用* Post answer *按鈕才能得到實際答案。您應該修改原始問題以添加其他信息,或發佈新問題。 –
是的,這些字段作爲單個字符串保持在一起。 Colud你請解釋我如何使用提取腳本。但是我需要在SSMS2008中解決這個問題。 – Pearl
sry,不能幫你在這方面...據我所知sql語言主要用在流行的dbms平臺上,包括mssql無法處理這種事情。你需要使用通用的語言(比如C,Java),你將嵌入你的sql代碼。 –