SQL (NZ) Как найти десятичные дроби в числовом столбце

Я пытаюсь собрать несколько SQL вместе, чтобы обновить Table_2 на основе значений Table_1, но суть в том, что это только когда значение является десятичным, а не целым числом.

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

Поэтому, ссылаясь на таблицы выше, я хотел бы обновить Col_C в Таблице 2, чтобы он соответствовал Col_A на основе ключа, но только если Col_A является десятичным, а не целым числом.

Я знаю, что в этом случае вы могли бы просто выполнить полное обновление (обновить всю таблицу 2, чтобы она соответствовала таблице 1), но в реальном приложении я использую его, потому что оно не будет работать, мне нужно сделать это только для десятичных чисел, просто нет уверен, как сузить их. Col_A/C являются числовыми (10,4). Col B/D являются инт.

Просто обратите внимание, что это в Netezza, не уверен, что в NZ есть что-то особенное, что облегчает это.

1 ответ

Решение

Это требует использования некоторых математических функций, в частности, 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);
Другие вопросы по тегам