2015-10-14 37 views
1

我需要幫助創建一個只帶有郵政編碼後綴的查詢。有些人有4位數的擴展名,有些則不是。我只需要那些後綴,而不是整個郵政編碼。僅提供郵政編碼後綴結果

例如:66227-4567 - 我試圖讓 「4567」

我已經嘗試過失敗;

  • case語句
  • 數 - 不知道爲什麼,但想我會試試看
  • 權(郵編,4) - 但這並不佔郵政編碼 沒有了後綴

我現在的想法和需要一些幫助

+0

'情況下CHARINDEX( ' - ',COL)> 0,則向右(COL,4)其他'end' –

+0

你是在正確的軌道上用'RIGHT(ZIPCODE,4)'。詢問ZIPCODE的長度,如果它大於6個字符(這將適用於zip可能爲'12345-'的情況),然後應用RIGHT功能。作爲一個有趣的事實,最後這4位數字是郵政編碼的「加4」部分。 –

+0

很酷!非常感謝克里斯 – 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 '%-____'