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

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

4 голосов
/ 01 марта 2011

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

SELECT 100/15 - Результат 6

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

100/15 = 6.6666 ..

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

Ответы [ 4 ]

10 голосов
/ 01 марта 2011

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

6 голосов
/ 11 мая 2013

ВЫБРАТЬ бросок (100 в качестве поплавка) / (15 в качестве поплавка)

3 голосов
/ 01 марта 2011

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

SELECT 100 / 15.0

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

2 голосов
/ 01 марта 2011

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

DECLARE @var1 FLOAT
DECLARE @var2 FLOAT
SET @var1 = 100
SET @var2 = 15
SELECT @var1 / @var2
...