COGNOS 11 与字符长度的转换连接
COGNOS 11 Concatenate with cast for char length
可能很简单,但我现在脑子里都是数字。我正在使用 COGNOS 11 并尝试使数据项显示字符长度为“4”,即 0014,而不仅仅是 14。我可以在报告属性中的编辑中执行此操作,但我正在尝试连接字符串,它一直恢复到 14。
我一直在尝试使用 CAST([Demand No], varchar(4)) 作为表达式定义(出现 'No error'),但它仍然在报告中删除前导 00。
到目前为止我的完整连接字符串 [单位 ID]||to_char(cast([Demand Date],date), 'ddmmyyyy')||cast([Demand No], varchar( 4)).这会产生 XXXXXXDDMMYYYY0000,但仅当最后四个字符为 0000 时才会产生,但如果前导 0 被删除,它看起来像这样 XXXXXXDDMMYYYY00。
你可以试试 lpad(cast([Demand No], varchar(4)),2,'0')
不够优雅,但这使用了通用的 Cognos 函数:
substring('0000', 1, 4 - char_length(cast([Demand No], varchar(4)))) || cast([Demand No], varchar(4))
可能很简单,但我现在脑子里都是数字。我正在使用 COGNOS 11 并尝试使数据项显示字符长度为“4”,即 0014,而不仅仅是 14。我可以在报告属性中的编辑中执行此操作,但我正在尝试连接字符串,它一直恢复到 14。
我一直在尝试使用 CAST([Demand No], varchar(4)) 作为表达式定义(出现 'No error'),但它仍然在报告中删除前导 00。
到目前为止我的完整连接字符串 [单位 ID]||to_char(cast([Demand Date],date), 'ddmmyyyy')||cast([Demand No], varchar( 4)).这会产生 XXXXXXDDMMYYYY0000,但仅当最后四个字符为 0000 时才会产生,但如果前导 0 被删除,它看起来像这样 XXXXXXDDMMYYYY00。
你可以试试 lpad(cast([Demand No], varchar(4)),2,'0')
不够优雅,但这使用了通用的 Cognos 函数:
substring('0000', 1, 4 - char_length(cast([Demand No], varchar(4)))) || cast([Demand No], varchar(4))