2015-10-14 3 views
1

Мне нужна помощь в создании запроса, который будет получен только с помощью суффикса почтового индекса. У некоторых есть 4-разрядное расширение, а другие нет. Мне просто нужен суффикс тех, которые делают, а не весь почтовый индекс.Только суффикс в почтовом индексе

пример: 66227-4567 - Я пытаюсь получить "4567"

Я безуспешно пытался;

  • случае заявления
  • счета - не знаю почему, но полагал, что я дам ему попробовать
  • вправо (почтовый индекс, 4) - но это не учитывает почтовые индексы , которые не имеют суффикс

Я теперь из идей и нужна помощь

+0

'случай, когда CHARINDEX ('-', цв)> 0, то вправо (цв, 4) еще '' end' –

+0

Вы на правильном пути с помощью «RIGHT (ZIPCODE, 4)». Опросите длину ZIPCODE, если она больше 6 символов (это будет учитываться в ситуациях, когда zip может быть «12345-»), затем примените функцию «RIGHT». Как забавный факт, эти 4 цифры в конце отбирают часть «Plus 4» zipcode. –

+0

очень круто! Большое спасибо Kris – benjo

ответ

0

Смотрите, если это помогает:

declare @Tab Table (Col nvarchar(100)) 

Insert into @Tab values ('66227-4567') 
Insert into @Tab values ('66227-45') 
Insert into @Tab values ('66227-4') 
Insert into @Tab values ('66227-') 
Insert into @Tab values ('66227') 
Insert into @Tab values ('66227-456712345') 
Insert into @Tab values ('66227- ') 
Insert into @Tab values ('') 

Select NULLIF(LTRIM(RTRIM(SUBSTRING(Col, NULLIF(CHARINDEX('-', Col),0)+1, LEN(Col)))),'') from @Tab 
0

Простейшим я могу думать о том, что я думаю, что будет работать в

SELECT ZipCode FROM MyTable 
    WHERE ZipCode LIKE '%-____' 
Смежные вопросы