W MS SQL-Server mogę:
SELECT ISNULL(Field,'Empty') from Table
Ale w PostgreSQL pojawia się błąd składniowy. Jak emulować ISNULL()
funkcjonalność?
sql-server
postgresql
null
Byron Whitlock
źródło
źródło
ISNULL
pobiera dwa argumenty i zwraca, że drugi to pierwszynull
, w przeciwnym razie pierwszy.Odpowiedzi:
Lub bardziej idiomatycznie:
źródło
coalesce
. (PS Możesz to zrobić również w MS SQL Server.)coalesce
to standard SQL,isnull
ponieważ jest to funkcja specyficzna dla MS, która zasadniczo macoalesce
tylko dwa parametry.COALESCE()
Zamiast tego użyj :Działa podobnie
ISNULL
, chociaż zapewnia większą funkcjonalność. Coalesce zwróci pierwszą wartość inną niż null na liście. A zatem:zwraca 5, podczas gdy
zwraca 2
Coalesce przyjmie wiele argumentów. Nie ma udokumentowanego maksimum. Przetestowałem to będzie 100 argumentów i udało się. To powinno wystarczyć w zdecydowanej większości sytuacji.
źródło
źródło
ISNULL
odwołują się Twoi komentatorzy, alefield IS NULL
podaje wartość logiczną, podczas gdyISNULL
w SQL Server działa takCOALESCE
: zwraca jedną z nie-NULL
wartości. Ta odpowiedź jest strasznie błędna. Zapoznaj się z dokumentacją:ISNULL
.Próbować:
źródło
Utwórz następującą funkcję
I to zadziała.
Możesz tworzyć różne wersje z różnymi typami parametrów.
źródło