Solución:
ROUND ( 123.456 , 2 , 1 )
Cuando el tercer parámetro ! = 0 trunca en lugar de redondea
http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx
Sintaxis
ROUND ( numeric_expression , length [ ,function ] )
Argumentos
-
numeric_expression
Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto para el tipo de datos de bit.
-
length
Es la precisión a la que se debe redondear numeric_expression. length debe ser una expresión de tipo tinyint, smallint o int. Cuando la longitud es un número positivo, numeric_expression se redondea al número de posiciones decimales especificadas por la longitud. Cuando la longitud es un número negativo, numeric_expression se redondea en el lado izquierdo del punto decimal, según lo especificado por la longitud.
-
function
Es el tipo de operación a realizar. la función debe ser tinyint, smallint o int. Cuando la función se omite o tiene un valor de 0 (predeterminado), numeric_expression se redondea. Cuando se especifica un valor distinto de 0, numeric_expression se trunca.
select round(123.456, 2, 1)
SELECT Cast(Round(123.456,2,1) as decimal(18,2))