Шрифт:
Интервал:
Закладка:
Подобная проверка может быть использована в случае, когда для расфасованных элементов указана цена за единицу, а не за расфасовку
FREEUDFLIB
F_MODULO(VALUE1, VALUE2)
Win32
Функция возвращает остаток отделения двух целых чисел
Аргументы
VALUE1 и VALUE2 являются столбцами или выражениями, которые вычисляются в числа типа SMALLINT или INTEGER
Возвращаемое значение
Число целого типа
Замечания
Эта версия функции получения остатка от деления может быть более полезной, чем MOD(), В сложных выражениях, где возвращаемое значение является частью другого выражения, которое оперирует целыми числами.(MOD() возвращает число с плавающей точкой.)
Пример
Фрагмент из триггера:
... IF (MODULO(NEW.HOURS * 100, 775) > 0.25) THEN ; NEW.OVERTIME_HOURS = MODULO(NEW.HOURS * 100, 775) / 100;
Связанные или похожие функции
См. также функцию MOD(), которая возвращает число с плавающей точкой
FREEUDFLIB
F_ROUNDFLOAT(VALUE1, VALUE2)
Win32
Округляет передаваемое значение до ближайшего значения, которое больше или меньше заданной дробной части
Аргументы
VALUE1: столбец или выражение, результатом вычисления которого является тип с плавающей точкой. Это округляемое число.
VALUE2: столбец или выражение, результатом вычисления которого является тип с плавающей точкой. Это должно быть число меньше 1 и больше 0. Например, передайте значение 0.25 для округления до ближайшей четверти
Возвращаемое значение
Число с плавающей точкой, которое является VALUE1, округленным до ближайшей дробной части VALUE2
Пример
Следующий оператор вычисляет PAID_HOURS, округляя HOURS WORKED до ближайшей четверти часа:
UPDATE TIMESHEET
SET PAID HOURS = F_ROUNDFLOAT(HOURS WORKED, 0.25)
WHERE DATE_TIMESTAMP > CURRENT_DATE - 7;
Связанные или похожие функции
См. также ROUND()
FREEUDFLIB
F_TRUNCATE(VALUE)
Win32
Усекает число с плавающей точкой до целого
Аргументы
VALUE является столбцом или выражением, результатом вычисления которого является число с плавающей точкой
Возвращаемое значение
Убирает дробную часть у VALUE и возвращает целую часть в виде целого типа
Пример
Следующий оператор вернет целое число:
SELECT F_TRUNCATE(SUM(AMT_OUTSTANDING)) AS
ESTIMATED_DEBTORS
FROM ACCOUNT
WHERE AMT_OUTSTANDING > 0;
Связанные или похожие функции
См. также TRUNCATE() и ROUND()
IB_UDF
FLOOR(VALUE)
Linux, Win32
Возвращает значение с плавающей точкой, представляющее наибольшее целое, меньшее или равное VALUE
Аргументы
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION С нулевой дробной частью
Пример
SELECT FLOOR (CURRENT_DATE - START_DATE) AS
DAYS_ELAPSED
FROM DVD_LOANS;
IB_UDF
LN(VALUE)
Linux, Win32
Возвращает натуральный логарифм числа
Аргументы
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION
Пример
SELECT LN ( (CURRENT_TIMESTAMP - LEASE_DATE) / 7) AS
NLOG_WEEKS
FROM LEASE_ACCOUNT ;
IB_UDF
LOG(VALUE1, VALUE2)
Linux, Win32
Возвращает логарифм по основанию x = VALUE1 числа у = VALUE2
Аргументы
VALUE1 (основание логарифма) и VALUE2 (число, с которым проводится операция) являются столбцами или выражениями, вычисляемыми в числа типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION
Замечания
Firebird 1.0.x и версии InterBase в этой функции имеют ошибку: log(x.y) ошибочно инвертирует аргументы и возвращает логарифм по основанию у числа x. Это было исправлено в версии 1.5. Имейте в виду, что существующие хранимые процедуры и код приложения могут иметь корректировки для этой ошибки
Пример
SELECT LOG(8, (CURRENT_TIMESTAMP - LEASE_DATE) /7) AS
LOG_WEEKS
FROM LEASE_ACCOUNT;
IB_UDF
LOG10(VALUE)
Linux, Win32
Возвращает десятичный логарифм входного числа
Аргументы
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION
Пример
SELECT LOG1O( (CURRENT_TIMESTAMP - LEASE_DATE) / 7) AS
LOG10_WEEKS FROM LEASE_ACCOUNT ;
IB_UDF
MODULO(VALUEl, VALUE2)
Linux, Win32
Функция возвращает остаток отделения двух целых чисел
Аргументы
VALUE1 и VALUE2 являются столбцами или выражениями, вычисляемыми в числа типа SMALLINT или INTEGER
Возвращаемое значение
Число типа DOUBLE PRECISION
Пример
Фрагмент триггера:
...IF (MODULO(NEW.HOURS * 100, 775) > 25.0) THEN
NEW.OVERTIME_HOURS = MODULO(NEW.HOURS * 100, 775) / 100;
Связанные или похожие функции
См. также функцию f_Modulo(), которая возвращает целое число
IB_UDF
PI()
Linux, Win32
Возвращает значение n = 3.14159...
Аргументы
Аргументы отсутствуют, однако скобки требуются
Возвращаемое значение
Значение n в виде числа DOUBLE PRECISION
Пример
SELECT PI() AS PI_VALUE FROM RDB$DATABASE;
IB_UDF
RAND()
Linux, Win32
Возвращает случайное число в диапазоне между 0 и 1. Заметьте, что эта функция не работает в Firebird 1.5
Аргументы
Аргументы отсутствуют, но скобки требуются
Возвращаемое значение
Число типа DOUBLE PRECISION
Замечания
В настоящее время используется для установления начального значения генератора
Пример
SELECT RAND() AS RANDOM NUMBER FROM RDB$DATABASE;
IB_UDF
ROUND(VALCE)
Linux, Win32
Округляет число с фиксированной точкой до ближайшего целого
Аргументы
VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами >0
Возвращаемое значение
Число целого типа
Замечания
Это полное округление. Если цифра сразу после десятичной точки больше или равна 5, то к цифре перед десятичной точкой добавляется единица, и у числа отсекаются дробные цифры. В противном случае просто отсекаются все дробные цифры
Пример
Следующий оператор составляет смету на основе результата округления произведения двух чисел NUMERIC(11,2):
SELECT JOB_NO, ROUND(RATE * HOURS) + 1 AS ESTIMATE
FROM QUOTATION
WHERE RATE IS NOT NULL AND HOURS IS NOT NULL;
Связанные или похожие функции
См. также TRUNCATE(), F_ROUNDFLOAT()
IB_UDF
SIGN(VALUE)
Linux, Win32
Возвращает 0, 1 или -1 в зависимости от того, является ли входное значение положительным, нулем или отрицательным соответственно
Аргументы
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION
Пример
Фрагмент триггера:
... IF (SIGN(NEW.CURRENT_VALUE) < 1) THEN ...;
IB_UDF
SQRT(VALUE)
Linux, Win32
Возвращает квадратный корень числа
Аргументы
VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION
Возвращаемое значение
Число типа DOUBLE PRECISION
Пример
Фрагмент триггера:
... IF (SQRT(NEW.HYPOTENUSE) = SQRT(NEW.SIDE1) +
SQRT(NEW.SIDE2)) THEN
NEW.RIGHT ANGLED TRIANGLE = 'T';
FBUDF
TRUNCATE(VALUE)
Linux, Win32
Усекает тип с фиксированной точкой до следующего меньшего целого
Аргументы
VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами > 0
Возвращаемое значение
Число целого типа
Замечания
Как и для некоторых других функций из этой библиотеки, вам нужно два объявления, чтобы использовать 32- и 64-битовый вход. Проверьте объявления в скрипте fdudf.sql truncate и i64truncate
Пример
Следующий оператор составляет смету на основе результата усечения произведения двух чисел NUMERIC (11,2):
SELECT JOB_NO,
TRUNCATE (RATE * HOURS) + 1 AS ESTIMATE FROM QUOTATION
WHERE RATE IS NOT NULL AND HOURS IS NOT NULL;
Связанные или похожие функции
См. также ROUND(), F_TRUNCATE()
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование