Netezza 代码将以减号结尾的数据转换为以减号开头
Netezza code to convert data ending with minus symbol and instead having it start with minus
在 table 中,我有字符数据类型格式的数字,其中包含减号和加号。问题是那些有负号的,例如 1.000-(而不是 -1.000)
加号的看起来像 1.000,这一切都很好,因此只有那些应该是减号的我需要更正。
下面的代码是我所达到的最接近的代码,但问题是当测试它时,即使有加号,一切都变成减号。它已从字符转换为 int 数据类型,以便能够对其求和。
cast('-' || SUBSTR(Numbers, 1, LENGTH(Numbers) - 1)as int)
总结一下我的问题,如果“数字”列中的字符数据为 1-,我如何才能将其变为 -1,而如果它在 IBM Netezza 数据库中为 1,则什么都不做?
谢谢!
这种情况下你朋友的to_number功能
select * from test;
C1
--------
1.000-
21-
1.2
2
100-
1.23-
213.01
(7 rows)
现在我们可以通过
将其转换为正确的文本
select to_number(c1, '9999D999S') from test;
TO_NUMBER
-----------
-1.000
-21.000
1.200
2.000
-100.000
-1.230
213.010
(7 rows)
在 table 中,我有字符数据类型格式的数字,其中包含减号和加号。问题是那些有负号的,例如 1.000-(而不是 -1.000) 加号的看起来像 1.000,这一切都很好,因此只有那些应该是减号的我需要更正。
下面的代码是我所达到的最接近的代码,但问题是当测试它时,即使有加号,一切都变成减号。它已从字符转换为 int 数据类型,以便能够对其求和。
cast('-' || SUBSTR(Numbers, 1, LENGTH(Numbers) - 1)as int)
总结一下我的问题,如果“数字”列中的字符数据为 1-,我如何才能将其变为 -1,而如果它在 IBM Netezza 数据库中为 1,则什么都不做?
谢谢!
这种情况下你朋友的to_number功能
select * from test;
C1
--------
1.000-
21-
1.2
2
100-
1.23-
213.01
(7 rows)
现在我们可以通过
将其转换为正确的文本 select to_number(c1, '9999D999S') from test;
TO_NUMBER
-----------
-1.000
-21.000
1.200
2.000
-100.000
-1.230
213.010
(7 rows)