Она должна рассматриваться как нерекомендуемая для Firebird 1.5 и выше
Пример
Следующий оператор вычисляет и выводит столбец времени выполнения BIRTH YEAR для каждого студента. Если это значение вычисляется в NULL, то вместо дня рождения выводится 'Not known' (Неизвестно):
SELECT
FIRST_NAME, LAST_NAME,
SNVL(CAST(EXTRACT(YEAR FROM BIRTH DATE) AS
VARCHAR (9) ) , ' Not known')
AS BIRTH_YEAR
FROM STUDENT_REGISTER;
Связанные или похожие функции
См. также iNVL(), sNullif() , внутреннюю функцию COALESCE()
Математические функции
IB_UDF |
ABS(VALUE) |
Linux, Win32 |
Возвращает абсолютное значение числа |
Аргументы |
VALUE является столбцом или выражением, которое совместимо с типом DOUBLE PRECISION |
Возвращаемое значение |
Число DOUBLE PRECISION |
Пример |
Этот оператор суммирует все отрицательные значения и возвращает итог в виде положительного числа: SELECT ABS(SUM(ASSET_VALUE)) AS LIABILITY FROM ASSET_REGISTER WHERE ASSET VALUE < 0; |
Похожие функции |
См. другую внешнюю функцию f_DoubleAbs(), которая выполняет те же действия |
IB_UDF |
BIN_AND(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает результат побитовой операции AND (И), выполняемой с двумя входными значениями |
Аргументы |
VALUE1 и VALUE2, являются столбцами или выражениями, которые преобразуются к типу SMALLINT или INTEGER |
Возвращаемое значение |
Значение INTEGER |
Пример |
SELECT BIN_AND (128,24) AS ANDED_ RESULT FROM RDB $ DATABASE; |
IB_UDF |
BIN_OR(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает результат двоичной (побитовой) операции OR (ИЛИ), выполняемой с двумя входными значениями |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, которые преобразуются К типу SMALLINT или INTEGER |
Возвращаемое значение |
Значение INTEGER |
Пример |
SELECT BIN_OR(128, 24) AS ORED_RESULT FROM RDB$DATABASE; |
IB_UDF |
BIN_XOR(VALUE1, VALUE2) |
Linux, Win32 |
Возвращает результат двоичной (побитовой) операции XOR (исключающее ИЛИ), выполняемой с двумя входными значениями |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, которые преобразуются К типу SMALLINT или INTEGER |
Возвращаемое значение |
Значение INTEGER |
Пример |
SELECT BIN_XOR(128, 24) AS EXORED_RESULT FROM RDB$DATABASE; |
IB_UDF |
CEILING(VALUE) |
Linux, Win32 |
Возвращает значение типа DOUBLE PRECISION, представляющее наименьшее целое, большее или равное входному значению |
Аргументы |
VALUE является столбцом или выражением, которое дает число типа DOUBLE PRECISION |
Возвращаемое значение |
Число DOUBLE PRECISION С нулевым количеством дробных знаков |
Пример |
SELECT CEILING (LAST_TOTAL) AS ROUND_UP_NEAREST FROM SALES_HISTORY; |
IB_UDF |
DIV(VALUE1, VALUE2) |
Linux, Win32 |
Делит два целых числа и возвращает частное, отбрасывая дробную часть |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, которые преобразуются к числам типа SMALLINT или INTEGER |
Возвращаемое значение |
Число DOUBLE PRECISION с нулевым количеством дробных знаков |
Пример |
SELECT DIV(TERM, (CURRENT_DATE - START_DATE) / 365) AS YEARS_REMAINING FROM MORTGAGE_ACCOUNT WHERE ACCOUNT_ID = 12345; |
FBUDF |
DPOWER(VALUE, EXPONENT) |
Linux, Win32 |
Получает число и показатель степени и возвращает степень числа |
Аргументы |
EXPONENT является столбцом или выражением, которое дает число типа DOUBLE PRECISION |
Возвращаемое значение |
Возвращает степень числа в виде DOUBLE PRECISION |
Пример |
SELECT DPOWER(2.64575,2) AS NEARLY_7 FROM RDB$DATABASE; |
Связанные или похожие функции |
См. также SQRTO |
FREEUDFLIB |
F_DOUBLEABS(VALUE) |
Win32 |
Возвращает абсолютное значение числа с плавающей точкой |
Аргументы |
VALUE является столбцом или выражением, которое преобразуется в число типа DOUBLE PRECISION или FLOAT |
Возвращаемое значение |
Положительное число типа DOUBLE PRECISION |
Пример |
SELECT ABS(SUM(ASSET_VALUE) ) AS LIABILITY FROM ASSET REGISTER WHERE ASSET VALUE < 0; |
Связанные или похожие функции |
См. также другую внешнюю функцию ABS(), которая выполняет ту же самую задачу и доступна не только на платформах Windows |
FREEUDFLIB |
F_ISDVISIBLEBY(VALUE1, VALUE2) |
Win32 |
Определяет, является ли значение нацело делимым на другое значение (то есть является ли VALUE2 делителем VALUE1). Возвращает 1, если числитель(VALUE1) нацело делится на знаменатель(VALUE2); иначе возвращает 0 |
Аргументы |
VALUE1: столбец или выражение, результатом вычисления которого является целый тип - число, которое будет делиться (числитель). VALUE2: другое целое - число, используемое в качестве знаменателя |
Возвращаемое значение |
Возвращает 1, если истинно, 0, если ложно |
Пример |
Эта функция может быть вызвана из ограничения CHECK, как в следующем примере: ALTER TABLE ORDER DETAIL ADD CONSTRAINT CHECK_MULTIPLE CHECK (ISDIVISIBLEBY (ORDER_QTY, PACK_QTY) = 1); Подобная проверка может быть использована в случае, когда для расфасованных элементов указана цена за единицу, а не за расфасовку |
FREEUDFLIB |
F_MODULO(VALUE1, VALUE2) |
Win32 |
Функция возвращает остаток отделения двух целых чисел |
Аргументы |
VALUE1 и VALUE2 являются столбцами или выражениями, которые вычисляются в числа типа SMALLINT или INTEGER |
Возвращаемое значение |
Число целого типа |
Замечания |
Эта версия функции получения остатка от деления может быть более полезной, чем MOD(), В сложных выражениях, где возвращаемое значение является частью другого выражения, которое оперирует целыми числами.(MOD() возвращает число с плавающей точкой.) |