2016-07-07 64 views
0

我想將一些SQL放在一起,以基於Table_1的值更新Table_2,但問題在於只有當值是小數而不是整數時。SQL(NZ)如何查找數字列中的小數點

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 

所以參照以上想什麼,我做的表是更新表2的Col_C基於關鍵,但只有當爲col_a是一個小數,而不是一個整數匹配爲col_a。

我知道你可以在這種情況下做一個更新(更新所有的表2來匹配表1),但在我使用它的實際應用程序中它不起作用我只需要做它只爲小數,只是不知道如何縮小它們。 Col_A/C是數字(10,4)。 Col B/D是int。

只需要注意,這是在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);