2013-10-10 2 views
0

Я пытаюсь использовать метод Round или Ceiling на основе десятичного десятичного числа. Как записать условие в хранимую процедуру T-SQL? Спасибо заранее!T-SQL Условная логика, основанная на тысячной (.00X) десятичной точке

Пример:

Если у меня есть этот номер: 1,793.5123611111 Я хотел бы использовать Round (Variable, 2,1), так что она становится 1,793. Так, чтобы тысячная десятичная цифра не округлялась.

Если у меня есть этот номер: 11,80620619333

Я хотел бы использовать потолок (Variable * 100)/100, так что он становится 11,806. Так, что тысячный десятичный знак округляется.

Спасибо.

ответ

0

Каков текущий тип данных? VARCHAR?

Вы можете попробовать это

DECLARE @a VARCHAR(100) = '11,806.20619333' 

PRINT CONVERT(VARCHAR(100),CAST(@a AS MONEY),1) 
0

Использование ROUND() без третьего аргумента. Когда третий аргумент не задан, то по умолчанию 0, что означает округление (любое другое значение означает усечение):

SELECT ROUND(Value, 2) 
FROM (
    SELECT 1793.5123611111 
    UNION ALL 
    SELECT 11806.20619333 
) AS s (Value) 
; 

выше даст следующие результаты:

-------- 
1793.51 
11806.21 
+0

Спасибо так много. Это сработало. :) – Kudohs

Смежные вопросы