Cognos Substr具有不同的长度

时间:2015-10-13 16:27:05

标签: report substring cognos

我的ID字段只是数字,但ID的长度不一。如果数字是16个字符长,那么我需要显示ID的'x'+最后4个,如果没有,那么只显示ID的最后10个。

1 个答案:

答案 0 :(得分: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 String'):

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