UFN_ADDRESS_ADDRESSBLOCK_NORMALIZE_LOWERCASE
Function returns a normalized address block in lowercase. Helpful when comparing addresses.
Return
Return Type |
---|
nvarchar(150) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADDRESS | nvarchar(150) | IN | |
@SUBSTITUTIONS | UDT_STRINGPAIR_100 | IN |
Definition
Copy
CREATE function dbo.UFN_ADDRESS_ADDRESSBLOCK_NORMALIZE_LOWERCASE(
@ADDRESS nvarchar(150),
@SUBSTITUTIONS dbo.UDT_STRINGPAIR_100 READONLY
)
returns nvarchar(150)
with execute as caller
as begin
set @ADDRESS = ' ' + lower(isnull(@ADDRESS,'')) + ' ';
--Removing special characters
select @ADDRESS = replace(@ADDRESS,'*','')
select @ADDRESS = replace(@ADDRESS,'.','')
select @ADDRESS = replace(@ADDRESS,',','')
select @ADDRESS = replace(replace(@ADDRESS,'(',''),')','')
select @ADDRESS = replace(@ADDRESS,'"','')
select @ADDRESS = replace(@ADDRESS,';','')
select @ADDRESS = replace(@ADDRESS,':','')
select @ADDRESS = replace(@ADDRESS,'''','')
select @ADDRESS = replace(@ADDRESS,'-','')
select @ADDRESS = replace(@ADDRESS,'@','')
select @ADDRESS = replace(@ADDRESS,'&','')
--Removing whitespace
select @ADDRESS = replace(replace(replace(@ADDRESS, char(13), ' '), char(10), ' '), char(9), ' ')
declare @REMOVEDWHITESPACE bit = 0
declare @TRIMMEDADDRESS nvarchar(150)
while @REMOVEDWHITESPACE = 0
begin
set @TRIMMEDADDRESS = replace(@ADDRESS, ' ', ' ')
if @TRIMMEDADDRESS <> @ADDRESS
set @ADDRESS = @TRIMMEDADDRESS
else
set @REMOVEDWHITESPACE = 1
end
if exists(select top 1 1 from @SUBSTITUTIONS)
begin
select @ADDRESS = replace(@ADDRESS, ' ' + [STRING1] + ' ', ' ' + [STRING2] + ' ')
from @SUBSTITUTIONS
end
else
begin
declare @ADDRESSSUBSTITUTIONS dbo.UDT_STRINGPAIR_100
insert into @ADDRESSSUBSTITUTIONS
select
[DESIGNATION],
[ABBREVIATION]
from dbo.UFN_ADDRESS_ADDRESSBLOCK_STANDARDUSABBREVIATIONS_LOWERCASE()
select @ADDRESS = replace(@ADDRESS, ' ' + [STRING1] + ' ', ' ' + [STRING2] + ' ')
from @ADDRESSSUBSTITUTIONS
end
select @ADDRESS = ltrim(rtrim(@ADDRESS))
return @ADDRESS;
end