我有一个问题,其中有一个数字字段,其中包含数据 ( - 98765.00),减去{spaces] {数字} ?,我需要删除减号和数字之间的空格,得到的是(-98765.00),如何在表达式转换中执行此操作。
字段数据类型为十进制(8,2)。
谢谢, 基兰
答案 0 :(得分:0)
您可以使用REG_REPLACE
功能替换空格
为此,您需要遵循以下步骤,
*创建两个可变端口
* REG_REPLACE - 函数需要字符串列,因此您需要使用 TO_CHAR 函数将十进制列转换为字符串列
第一个变量端口(字符串) - TO_CHAR(column_name)
*在以前的端口数据转换为字符串,现在再次将其转换为十进制并应用 REG_REPLACE 功能
第二个变量端口(十进制) - to_decimal(reg_replace(first_variable_port,'s+',''))
s - 确定信息正则表达式中的空格
见下图,
使用的是相同的号码。使用相同的数据类型和功能
调试器通过删除下图中的空白区域来提供精确的结果,
希望你明白,任何问题随时都可以问 要享受信息,请在https://etlinfromatica.wordpress.com/
上享受乐趣答案 1 :(得分:0)
output_port: TO_DECIMAL(REPLACECHR(FALSE,input_port,' ',''))
REPLACECHR用空字符替换空格,基本上删除它们。第一个参数可以是TRUE / FALSE来指定区分大小写,但在这种情况下它并不重要。
答案 2 :(得分:0)
如果我的理解是正确的,您需要同时替换spaces
和brackets
。这是表达式:
TO_DECIMAL(
REPLACECHR(0,
REPLACECHR(0, '(- 98765.00)', ' ', '') -- this part does the space replacement
, '()', '') -- this part replaces the brackets
)