SQL Server: анализатор почтового индекса - PullRequest
0 голосов
/ 19 января 2012

Мне нужно написать табличную функцию в T-SQL, которая будет принимать почтовый индекс в любом формате строки и выводить два целых числа для первых пятизначных и вторых четырехзначных частей почтового индекса.

Ввод может выглядеть следующим образом: «123456787432», в этом случае следует учитывать только первые 9 цифр.

Или это может выглядеть так: «12345-4567», или примерно так: «12345», в этом случае вывод второй части должен быть 0.

Или может быть мусорсимволы среди цифр, какие символы следует игнорировать.Если вторая часть - «0345», вывод должен быть 345.

Если бы был эффективный способ отфильтровать все нечисловые символы, остальное было бы очень просто.

Iбудем благодарны за любые предложения.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2013

Я не уверен насчет двух вещей: 1) Что делать, если почтовый индекс имеет начальный ноль или два (некоторые имеют)? Вы не хотите лишать их. 2) Вы упомянули, что если у 2-й части есть начальный ноль, вы хотите удалить его. Для ZIP + 4 (он же девятизначный ZIP-код) во второй части требуется 4 цифры.

0 голосов
/ 19 января 2012

Если бы был эффективный способ отфильтровать все нечисловые персонажи, остальное будет очень просто

Не знаю, насколько эффективно, но это способ.

declare @s varchar(10)

set @s = 'ab123c d45'

while patindex('%[^0-9]%', @s) > 0
set @s = stuff(@s, patindex('%[^0-9]%', @s), 1, '')

select @s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...