2015-10-13 59 views
0

我有一個ID字段,只是數字,但ID的長度有所不同。如果數字長度爲16個字符,那麼我需要顯示ID的最後4位的'x'+,如果不是,則只顯示ID的最後10位。不同長度的Cognos Substr

回答

0

如果你的ID字段已經是一個字符串:

CASE character_length([ID]) 
WHEN 16 THEN 'x' || substring([ID],character_length([ID]) - 3) 
ELSE substring([ID],character_length([ID]) - 9) 
END 

如果你的ID被存儲爲整數,我建議創建蒙上它作爲一個varchar一個新的數據項(比如命名爲「ID字符串「):

CAST([ID],VARCHAR(16)) 

則替換所述第一表達的新值:

CASE character_length([ID String]) 
WHEN 16 THEN 'x' || substring([ID String],character_length([ID String]) - 3) 
ELSE substring([ID String],character_length([ID String]) - 9) 
END 
+0

這完美地工作。非常感謝你! –