SQL-приведение от int до decimal
У меня есть два столбца в таблице, которые заполнены целочисленными значениями. Для каждой записи я хочу разделить значения этих двух столбцов и отформатировать вывод так, чтобы десятичная точка перемещалась в места справа.
например, если у меня есть значения двух столбцов для одной записи как 4 и 1, и я хочу разделить 1 на 4 (так 1/4), то я хочу, чтобы выход был 25.00.
вот последнее, что я недавно пробовал:
CAST(Total AS Decimal(2))/CAST(TotalAnswers AS Decimal(2)) AS 'Percent'
Я не был возможность найти синтаксическое объяснение функции CAST, чтобы увидеть, что представляет параметр, переданный для decimal. Когда я меняю его, он иногда меняет количество мест справа от десятичного знака, но результаты не всегда то, что я ожидаю, поэтому я хотел бы получить небольшую помощь в этом.
4 ответов
DECIMAL(2)
- десятичное 2 цифры до и без цифр после десятичной точки. Это не позволяет вам иметь цифры после запятой!
The DECIMAL(p,s)
спецификация определяет количество общих цифр (p
) и количество цифр после десятичной точки (s
) (где s
не может превышать p
и равно 0, если ommitted).
вам нужно использовать что-то вроде DECIMAL(4,2)
(4-значный итог-2 из которых после десятичная точка; поэтому: также 2 перед десятичной точкой) или что - то в этом роде - некоторые цифры до и после десятичной запятой-тогда вы увидите желаемый результат!
подробнее о DECIMAL
введите и его синтаксис, обратитесь к теме MSDN Books Online на decimal и numeric
есть фактические несколько параметров..
(p, s)
здесь
- p представляет "точность" - общее количество цифр до и после запятой.
- s представляет собой "шкалу" - количество цифр после запятой.
давая только 1 параметр, вы даете только точность.
посмотреть MDSN.
from book-online для десятичного типа данных: Числовые типы данных с фиксированной точностью и масштабом.
decimal[ (p[ , s])] и numeric [(p [, s] )] Исправлена точность и масштабные номера. При использовании максимальной точности, допустимые значения: от - 10^38 +1 до 10^38 - 1. Синонимами SQL-92 для decimal являются dec и dec(p, s). numeric функционально эквивалентен decimal.
p (точность) Максимальное общее число десятичных разрядов, которые могут быть сохранены, как для слева и справа от десятичной точки. Точность должна быть значением от 1 до максимальной точности 38. Точность по умолчанию-18.
s (масштаб) Максимальное число десятичных разрядов, которое может храниться справа от десятичной точки. Масштаб должен быть значением от 0 до p. Масштаб может быть указан, только если задана точность. Масштаб по умолчанию равен 0; следовательно, 0