2015-10-13 87 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

这完美地工作。非常感谢你! –