具有不同长度的 Cognos Substr
Cognos Substr with varying lengths
我有一个 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'):
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
我有一个 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'):
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