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);