Report 长度可变的Cognos Substr

Report 长度可变的Cognos Substr,report,substring,cognos,Report,Substring,Cognos,我有一个ID字段,它只是数字,但ID的长度不同。如果数字长度为16个字符,则我需要显示“x”+ID的最后4个字符,如果不是,则只显示ID的最后10个字符。如果您的ID字段已经是字符串: CASE character_length([ID]) WHEN 16 THEN 'x' || substring([ID],character_length([ID]) - 3) ELSE substring([ID],character_length([ID]) - 9) END 如果您的ID存储为整

我有一个ID字段,它只是数字,但ID的长度不同。如果数字长度为16个字符,则我需要显示“x”+ID的最后4个字符,如果不是,则只显示ID的最后10个字符。

如果您的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'):

然后替换第一个表达式中的新值:

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
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