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() |