2012-10-31 12 views
13

Così ho una tabella con i numeri in decimali, direPrendi parte intera del numero

id value 
2323 2.43 
4954 63.98 

E vorrei ottenere

id value 
2323  2 
4954  63 

C'è una semplice funzione in T-SQL per fare quella?

risposta

22
SELECT FLOOR(value) 

http://msdn.microsoft.com/en-us/library/ms178531.aspx

PIANO restituisce il massimo intero minore o uguale all'espressione numerica specificata.

+2

E 'importante chiarire che, anche se questa risposta non soddisfare la richiesta con i dati di esempio forniti, che la funzione Piano reagisce in modo diverso con valori negativi. Floor (123,45) restituirebbe 123 ma Floor (-123,45) restituirebbe 124 – domenicr

+1

In realtà, restituire -124, il più grande numero intero minore o uguale all'espressione numerica specificata. :) –

+0

Un buon modo per capire che funziona allo stesso modo per i valori negativi e positivi è quello di guardare il suo grafico qui: http://mathworld.wolfram.com/FloorFunction.html – BD01

5

Dando per scontato che OK con troncamento della parte decimale si può fare: SELECT Id, CAST(value AS INT) INTO IntegerTable FROM NumericTable