Netezza 格式化函数
Netezza Formatting Functions
我已经导入了一些数据,有时是奇数格式(例如 12,345.01- 和 1,945.001-),我正在尝试 'fix' 它。
数据导入为VARCHAR(20)
我的解决方案:
to_number(BadNumCol, 'S999G999G999D999')
input: 10426.95 ;261.000 ;33.93-
outputs:42695.00 ;261.000 ; 3.93
the output is NUMERIC(12,3)
desired output: 10426.95 ; 261.000 ; -33.93
这是怎么回事?我missing/not在无知中了解什么?
而且,我如何修复 这些约 4 亿个数据元素?
我在这里看到了两个问题。
对于来自数据 "solution" 部分的示例输入数据,示例输入数据的 none 具有组分隔符,因此您在 TO_NUMBER 函数不匹配。
另外,当您的数据有尾随减号时,您指定了一个锚定到字符串开头的符号字符。
我可以从您的样本输入数据中推断出最合适的转换格式字符串是:'999999999D999MI'
select * from num_test;
BADNUMCOL
-----------
261.000
10426.95
33.93-
(3 rows)
select to_number(BadNumCol,'999999999D999MI')::NUMERIC(12,3) GoodNumCol from num_test;
GOODNUMCOL
------------
10426.950
-33.930
261.000
(3 rows)
我已经导入了一些数据,有时是奇数格式(例如 12,345.01- 和 1,945.001-),我正在尝试 'fix' 它。
数据导入为VARCHAR(20)
我的解决方案:
to_number(BadNumCol, 'S999G999G999D999')
input: 10426.95 ;261.000 ;33.93-
outputs:42695.00 ;261.000 ; 3.93
the output is NUMERIC(12,3)
desired output: 10426.95 ; 261.000 ; -33.93
这是怎么回事?我missing/not在无知中了解什么?
而且,我如何修复 这些约 4 亿个数据元素?
我在这里看到了两个问题。
对于来自数据 "solution" 部分的示例输入数据,示例输入数据的 none 具有组分隔符,因此您在 TO_NUMBER 函数不匹配。
另外,当您的数据有尾随减号时,您指定了一个锚定到字符串开头的符号字符。
我可以从您的样本输入数据中推断出最合适的转换格式字符串是:'999999999D999MI'
select * from num_test;
BADNUMCOL
-----------
261.000
10426.95
33.93-
(3 rows)
select to_number(BadNumCol,'999999999D999MI')::NUMERIC(12,3) GoodNumCol from num_test;
GOODNUMCOL
------------
10426.950
-33.930
261.000
(3 rows)