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)