Разделить в SQL Server

В SQL Server 2005 Express результат ниже

ВЫБЕРИТЕ 100 / 15 --Результат 6

Но я хочу получить приблизительное значение 7 (например, с помощью калькулятора)

100 / 15 = 6.6666..

Как это сделать в SQL Server?


person soclose    schedule 01.03.2011    source источник
comment
Теперь я понял. Спасибо всем :). ВЫБЕРИТЕ ОКРУГ (100 / 15.00,0)   -  person soclose    schedule 01.03.2011


Ответы (4)


Вы должны использовать десятичные числа, например. 100/15,0. Если вы используете целые числа, результат интерпретируется как целое число и усекается до наибольшего целого числа, которое меньше или равно результату.

person Aleksi Yrttiaho    schedule 01.03.2011

SELECT cast (100 как число с плавающей запятой) / (15 как число с плавающей запятой)

person user2373127    schedule 11.05.2013

Вы хотите, чтобы SQL Server выполнял деление с плавающей запятой, а не целочисленное деление. Если вы используете литеральные значения, как в вашем примере, добавьте к знаменателю суффикс .0, чтобы заставить SQL Server рассматривать его как значение с плавающей запятой.

SELECT 100 / 15.0

В противном случае убедитесь, что вы объявили свои переменные как FLOAT.

person Michael Petrotta    schedule 01.03.2011

Попробуйте объявить переменные как числа с плавающей запятой:

DECLARE @var1 FLOAT
DECLARE @var2 FLOAT
SET @var1 = 100
SET @var2 = 15
SELECT @var1 / @var2
person Dubmun    schedule 01.03.2011