В MS SQL-Server я могу сделать:
SELECT ISNULL(Field,'Empty') from Table
Но в PostgreSQL я получаю синтаксическую ошибку. Как мне эмулировать ISNULL()
функциональность?
sql-server
postgresql
null
Байрон Уитлок
источник
источник
ISNULL
принимает два аргумента и возвращает второй - первыйnull
, иначе первый.Ответы:
Или более идиоматический:
источник
coalesce
. (PS Вы можете сделать это и в MS SQL Server.)coalesce
стандарт SQL,isnull
поскольку он является специфичной для MS функцией, которая, по сути, имеетcoalesce
только два параметра.Используйте
COALESCE()
вместо этого:Он функционирует очень похоже
ISNULL
, хотя и предоставляет больше функциональности. Coalesce вернет первое ненулевое значение в списке. Таким образом:возвращает 5, а
возвращает 2
Коалесци примет большое количество аргументов. Документированного максимума нет. Я проверил это будет 100 аргументов, и это удалось. Этого должно быть достаточно для подавляющего большинства ситуаций.
источник
источник
ISNULL
ссылаются ваши комментаторы, ноfield IS NULL
дает логическое значение, аISNULL
в SQL Server работает такCOALESCE
: возвращает одно из ненулевыхNULL
значений. Этот ответ ужасно неправильный. Обратитесь к документации:ISNULL
.Пытаться:
источник
Создайте следующую функцию
И это сработает.
Вы можете создавать разные версии с разными типами параметров.
источник