2016-06-28 20 views
0

hält ich Zahlen (aus meiner select)SQL - Test, wenn numerisches Feld eine ganze Zahl

col1   col2 
    1. 3.6 and 3 
    2. 3.6 and 5 

Ich mag diese

if(col1/col2 = integer) 
    update column 
else(col1/col2 = decimal number) 
    update column 

Jede Idee, wie ist die Nummer integer oder dezimal zu bekommen?

+0

wenn Ihr col1 immer schweben/dezimal/real und dann teilen Sie es mit int Ausgang wird nie ein INT sein, wenn Sie – TheGameiswar

+0

CAST Sie diese nutzen könnten, um zu überprüfen, ob das Dezimalsystem Wert ist nah genug an eine ganze Zahl: 'case wenn a.col1/a.col2 = rund (a.col1/a.col2, 0) dann 'integer' sonst 'decimal' end '- zumindest in MySQL –

+0

Tag der dbms benutzt. Manche Produkte verhalten sich hier anders. – jarlh

Antwort

2

Sie könnten Modulo 1 (% 1) verwenden, und wenn der Rest Null ist, dann haben Sie Ihre 'Integer'. Zum Beispiel mit SQL Server:

if (col1/col2) % 1 = 0 
    -- integer 
else 
    -- decimal 
+0

Vielen Dank, das war's – pape