SQL (NZ) 如何在数字列中查找小数

SQL (NZ) How to find decimals in a numeric column

我正在尝试将一些 SQL 放在一起以根据 Table_1 的值更新 Table_2,但要注意的是,只有当值是小数而不是小数时一个整数。

Table_1                      Table_2

Col_A  Col_B  Key          Col_C  Col_D  Key
3.2     6     331            3      6    331
5       8     332            5      8    332
1.12    9     333            1      9    333
6       10    334            6      10   334

所以参考上面的 tables 我想做的是更新 Table 2 的 Col_C 以匹配 Col_A 基于密钥但前提是Col_A 是小数,不是整数。

我知道你可以在这种情况下进行全面更新(更新所有 table 2 以匹配 table 1)但在实际应用程序中我正在使用它,因为它不会'不工作我只需要为小数点做,只是不知道如何缩小它们的范围。 Col_A/C 是数字 (10,4)。 Col B/D 是整数。

请注意这是在 Netezza 中,不确定 NZ 是否有一些特殊的东西可以更容易地做到这一点。

这需要使用一些数学函数,特别是 floor():

update table_2
    set . . .
from table_1
where table_2.col_C = floor(table_1.col_A) and
      table_1.col_A > floor(table_1.col_A);