我必须将城市州和邮政编码从地址栏中分离出来,如下所示。来自地址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代码。 –