Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

ПРИЛОЖЕНИЯ

Приложение 1. Список внешних функций

Функции условной логики

FBUDF

INULLIF(VALUE1, VALUE2)

Linux, Win32

Возвращает NULL для подвыражения, если оно преобразуется в непустое значение; иначе возвращает значение подвыражения. Применимо только для числовых типов с фиксированной точкой и только в Firebird 1.0.x. В Firebird 1.5 и выше используйте внутреннюю функцию NULLIF

Аргументы

VALUE1: столбец или вычисляемое выражение

VALUE2: константа или выражение, с которым сравнивается VALUE1. ЕСЛИ они равны, функция вернет HULL

Возвращаемое значение

NULL, если VALUE1 и VALUE равны; если равенства нет, будет возвращено VALUE 1

Замечания

INULLIFO

имеет результат, эквивалентный использованию внутренней SQL-функции NULLIFO, реализованной в Firebird 1.5 и выше для числовых типов с фиксированной точкой

Внешняя функция INULLIFO существует в трех реализациях: две для 32-битовых и 16-битовых типов (inullif и dnullif), а третья для 64- битовых типов (i64nullif). Если вы хотите использовать ее с любыми числовыми типами с фиксированной точкой, объявите все реализации. Объявления можно найти в скрипте fbudf.sql в каталоге /UDF вашей инсталляции Firebird.

Не объявляйте реализацию i64nullif для баз данных, которые не поддерживают 64-битовые числа- например, для не перенесенной базы данных InterBase 5

Пример

Следующий оператор приведет к тому, что значение STOCK в таблице PRODUCTS будет установлено в NULL для всех строк, где оно имеет значение 0:

UPDATE PRODUCTS

SET STOCK = iNULLIF(STOCK, 0)

Связанные или похожие функции

См. также NULLIF , sNullIf

FBUDF

INVL(VALUE1, VALUE2)

Linux, Win32

Эта функция пытается повторить функцию Oracle NVL только для числовых типов с фиксированной точкой. Она возвращает указанное непустое значение, если заданный столбец имеет значение NULL

Аргументы

VALUE1: столбец или выражение, включающее столбец. Типы с плавающей точкой не поддерживаются. При необходимости используйте в вашем выражении CAST для преобразования значения в числовой тип.

VALUE2: выражение или константа, которая будет возвращаемым значением, если VALUE1 дает NULL

Возвращаемое значение

Непустое значение. Если VALUE1 не является NULL, то оно будет возвращаемым значением; иначе будет возвращаться VALUE1. Если и VALUE1, и VALUE2 имеют значение NULL, то будет возвращено значение NULL

Замечания

Логически эта функция эквивалентна простой форме функции COALESCE О версии 1.5, когда она используется со столбцом числового типа с фиксированной точкой, а именно COALESCE(VALUE1, VALUE2) .

Она должна рассматриваться как нерекомендуемая для Firebird версии 1.5 и выше.

Внешняя функция iNVL существует в трех реализациях: две для 32-битовых и 16-битовых типа (invl и dnvi), а третья для 64-битовых типов (i64nvi). Если вы хотите использовать ее с любыми числовыми типами с фиксированной точкой, объявите все реализации. Объявления можно найти в скрипте fbudf.sql в каталоге /UDF вашей инсталляции Firebird.

Не объявляйте реализацию i64nvi для баз данных, которые не поддерживают 64-битовые числа - например, для не перенесенной базы данных InterBase 5

Пример

Следующий запрос возвращает 0, если STOCK имеет значение NULL:

SELECT

PRODUCT ID, PRODUCT NAME,

INVL(STOCK, 0)

FROM PRODUCTS;

Связанные или похожие функции

См. также sNVL, iNullIf, внутреннюю функцию COALESCE

FBUDF

SNULLIF(VALUE1, VALUE2)

Linux, Win32

Возвращает NULL для подвыражения, если оно иначе возвращает значение этого подвыражения. Применимо только для символьных типов и должно быть использовано только в Firebird 1,0.x. В Firebird 1.5 и выше используйте NULLIFO

Аргументы

VALUE1: столбец или вычисляемое выражение.

VALUE2: константа или выражение, с которым сравнивается VALUE1. ЕСЛИ они равны, SNULLIF вернет NULL

Возвращаемое значение

NULL, если VALUE1 и VALUE2 равны. Если не равны, то возвращается VALUE1

Замечания

SNOLLIF имеет результат, эквивалентный использованию внутренней функции SQL NULLIFO, реализованной в Firebird 1.5 и выше с символьными типами

Пример

Следующий запрос устанавливает значение столбца IS_REGISTERED в NULL для всех столбцов, где его значение ' Т', a REGISTERED имеет значение NOLL:

UPDATE ATABLE

SET IS REGISTERED = SNOLLIF(IS REGISTERED, 'T')

WHERE REGISTRATION_DATE IS NULL;

Связанные или похожие функции

См. также iNullif. Для Firebird 1.5 и вышё см. внутреннюю функцию NULLIF

FBUDF

SNVL(VALUE1, VALUE2)

Linux, Win32

Эта функция пытается повторить функцию Oracle NVLO только для строковых типов. Она возвращает указанное непустое значение, если заданный столбец имеет значение NULL

Аргументы

VALUE1: столбец или выражение, включающее столбец.

VALUE2: выражение или константа, которая будет возвращаемым значением, если VALUE1 дает NOLL

Возвращаемое значение

Непустое значение. Если VALUE1 не является NULL, то оно будет возвращаемым значением; иначе

будет возвращаться VALUE2. Если и VALUE1, и VALUE2 имеют значение NULL, ТО будет возвращено значение NULL

Замечания

Логически эта функция эквивалентна простой форме функции COALESCE версии 1.5, когда она используется со столбцом символьного типа, а именно COALESCE(VALUE1, VALUE2).

Она должна рассматриваться как нерекомендуемая для 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;

Поделиться:
Популярные книги

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода