2015-02-19 3 views
0

CEILING в T-SQL не возвращает правильные значения в SQL Server 2012. См. Подробности ниже.CEILING в SQL не возвращает правильные значения

select CEILING(0.3333333333333333) 

Результат: 1

Но я хочу сделать расчет на основе подсчета столбцов. Внутренний расчет приведен ниже.

select CEILING((17 - 2)/45) 

Результат: 0

(17 - 2)/45 = 0.33333 

Но

select CEILING((17 - 2)/45) 

возвращает ноль

Я хочу, чтобы получить один в качестве результата. Что мне делать?

+0

упомянуть базу данных, которую вы используете – Deep

+1

Использовать хотя бы один литерал с плавающей запятой? т. е. (17-2)/45,0. Исходные выражения корректно работают в 'mysql'. –

ответ

0

Он заканчивается целым делением. Так

15/45 = 0

Попробуйте Casting по крайней мере один из операндов в десятичной,

SELECT CEILING((17-2)/CAST(45 AS DECIMAL (4,2)) 

ИЛИ как,

SELECT CEILING(15,45.0) 
+0

Большое спасибо Maheswaran Ravisankar. Теперь это прекрасно работает –

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