Функции для работы с числами
Для работы с числовыми данными T-SQL предоставляет ряд функций:
ROUND: округляет число. В качестве первого параметра передается число. Второй параметр указывает на длину. Если длина представляет положительное число, то оно указывает, до какой цифры после запятой идет округление. Если длина представляет отрицательное число, то оно указывает, до какой цифры с конца числа до запятой идет округление
12SELECTROUND(1342.345, 2)-- 1342.350SELECTROUND(1342.345, -2)-- 1300.000ISNUMERIC: определяет, является ли значение числом. В качестве параметра функция принимает выражение. Если выражение является числом, то функция возвращает 1. Если не является, то возвращается 0.
1234SELECTISNUMERIC(1342.345)-- 1SELECTISNUMERIC('1342.345')-- 1SELECTISNUMERIC('SQL')-- 0SELECTISNUMERIC('13-04-2017')-- 0ABS: возвращает абсолютное значение числа.
1SELECTABS(-123)-- 123CEILING: возвращает наименьшее целое число, которое больше или равно текущему значению.
12SELECTCEILING(-123.45)-- -123SELECTCEILING(123.45)-- 124FLOOR: возвращает наибольшее целое число, которое меньше или равно текущему значению.
12SELECTFLOOR(-123.45)-- -124SELECTFLOOR(123.45)-- 123SQUARE: возводит число в квадрат.
1SELECTSQUARE(5)-- 25SQRT: получает квадратный корень числа.
1SELECTSQRT(225)-- 15RAND: генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.
12SELECTRAND()-- 0.707365088352935SELECTRAND()-- 0.173808327956812COS: возвращает косинус угла, выраженного в радианах
1SELECTCOS(1.0472)-- 0.5 - 60 градусовSIN: возвращает синус угла, выраженного в радианах
1SELECTSIN(1.5708)-- 1 - 90 градусовTAN: возвращает тангенс угла, выраженного в радианах
1SELECTTAN(0.7854)-- 1 - 45 градусов
Например, возьмем таблицу:
1 2 3 4 5 6 7 8 | CREATE TABLE Products( Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL); |
Округлим произведение цены товара на количество этого товара:
1 2 | SELECT ProductName, ROUND(Price * ProductCount, 2)FROM Products |