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() |
Математические функции