0

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

这是我目前在 Cognos 8 Report Studio 的表达式定义中的内容:

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

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

4

2 回答 2

1

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

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

于 2014-10-23T18:50:44.403 回答
0

您使用的方法是可行的。但是,您使用的语法与我熟悉的 ReportStudio 版本不兼容。您将在下面找到适合我的更新表达式。

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

由于字符串中的字符位置在 Cognos 中是1从 1 开始的,因此从POSITION(). 否则,您只会截断百分号后的字符。

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

于 2014-10-23T07:27:55.797 回答