Du kanske kan splitta talet och ta delen efter (.) och arbeta med det för avrundning uppåt/neråt? Därefter slå ihop igen.
Lekte lite med freddyk's förslag..
DECLARE @ToPay decimal(16,2)
DECLARE @After varchar(10)
DECLARE @Before varchar(10)
DECLARE @Concated Varchar(16)
/* Exempel på värdet*/
SET @ToPay = 101.54
/* Hämta det som är efter punkten i @ToPay*/
SET @After = SUBSTRING(Convert(char,@ToPay),CHARINDEX('.',@ToPay) + 1,LEN(@ToPay))
/* Hämta det som är före punkten i @ToPay */
SET @Before = SUBSTRING(Convert(char,@ToPay),0,CHARINDEX('.',@ToPay))
if Convert(int, @After) < 50
Begin
Select @ToPay As NotRounded, @Before + '.50' As Rounded
End
Else
Begin
Select @ToPay As NotRounded, Convert(decimal, @Before + 1) As Rounded
End
Sen beror det lite på vilka avrundningsregler man vill ha..
Du kan ju pröva denna i Management Studio och testa dig fram..