如何在Cognos中从字符串中删除百分比字符



我有一个字符串字段,其中大部分是数值,如13.4,但也有一些是13.4%。我正在尝试使用以下表达式来删除%符号,并只保留数值以将字段转换为整数。

以下是到目前为止我在Cognos8ReportStudio的表达式定义中得到的内容:

IF(POSITION('%' IN [FIELD1]) = NULL) THEN 
  /*** this captures rows with valid data **/
  ([FIELD1]) 
ELSE 
  /** trying to remove the % sign from rows with data like this 13.4% **/
  (SUBSTRING([FIELD1]), 1, POSITION('%' IN [FIELD1]))) 

非常感谢任何提示/帮助。

一个简单的方法是使用trim()函数。以下操作将删除任何尾随的%字符:

TRIM(尾随"%",[FIELD1])

您使用的方法是可行的。但是,您使用的语法与我熟悉的ReportStudio版本不兼容。下面你会发现一个更新的表达式,它适用于我。

IF ( POSITION( '%'; [FIELD1]) = 0)  THEN 
    ( [FIELD1] ) 
ELSE 
    ( SUBSTRING( [FIELD1]; 1; POSITION( '%'; [FIELD1]) - 1 ) )

由于Cognos中字符串中的字符位置是基于1的,因此从POSITION()返回的位置减去1非常重要。否则,您只会在百分号后截断字符

另一个注意事项:您在这里所做的是数据清理。通常更有利的做法是将这些杂务向下推到数据检索链的较低级别,例如数据仓库或至少框架管理器模型,以便在报告级别可以直接将此字段用作数字字段。

相关内容

  • 没有找到相关文章

最新更新