No MS SQL-Server, eu posso fazer:
SELECT ISNULL(Field,'Empty') from Table
Mas no PostgreSQL eu recebo um erro de sintaxe. Como eu emulo a ISNULL()
funcionalidade?
sql-server
postgresql
null
Byron Whitlock
fonte
fonte
ISNULL
recebe dois argumentos e retorna o segundo é o primeironull
, caso contrário, o primeiro.Respostas:
Ou mais idiomático:
fonte
coalesce
. (PS Você pode fazer isso em MS SQL Server, também.)coalesce
que está no padrão SQL, porisnull
ser uma função específica do MS que é essencialmentecoalesce
com apenas dois parâmetros.Use em
COALESCE()
vez disso:Funciona muito parecido com
ISNULL
, embora ofereça mais funcionalidade. A coalescência retornará o primeiro valor não nulo da lista. Portanto:retorna 5, enquanto
retorna 2
Coalesce terá um grande número de argumentos. Não há um máximo documentado. Eu testei com 100 argumentos e conseguiu. Isso deve ser suficiente para a grande maioria das situações.
fonte
fonte
ISNULL
comentaristas estão se referindo, masfield IS NULL
fornece um valor booleano, enquantoISNULL
no SQL Server funciona da seguinte maneiraCOALESCE
: retorna um dos nãoNULL
valores. Esta resposta está terrivelmente errada. Consulte a documentação:ISNULL
.Experimentar:
fonte
Crie a seguinte função
E vai funcionar.
Você pode criar versões diferentes com diferentes tipos de parâmetros.
fonte