Dans MS SQL-Server, je peux faire:
SELECT ISNULL(Field,'Empty') from Table
Mais dans PostgreSQL, j'obtiens une erreur de syntaxe. Comment émuler la ISNULL()
fonctionnalité?
sql-server
postgresql
null
Byron Whitlock
la source
la source
ISNULL
prend deux arguments et renvoie le second est le premier estnull
, sinon le premier.Réponses:
Ou plus idiomatique:
la source
coalesce
. (PS Vous pouvez aussi le faire dans MS SQL Server.)coalesce
en standard SQL, avecisnull
une fonction spécifique à MS qui est essentiellementcoalesce
avec seulement deux paramètres.Utilisez
COALESCE()
plutôt:Il fonctionne de la même manière
ISNULL
, mais offre plus de fonctionnalités. Coalesce renverra la première valeur non nulle de la liste. Donc:renvoie 5, tandis que
renvoie 2
Coalesce prendra un grand nombre d'arguments. Il n'y a pas de maximum documenté. J'ai testé ça va 100 arguments et ça a réussi. Cela devrait être suffisant pour la grande majorité des situations.
la source
la source
ISNULL
vous faites référence, maisfield IS NULL
donne une valeur booléenne, tandis queISNULL
dans SQL Server fonctionne commeCOALESCE
: il renvoie l'une des non-NULL
valeurs. Cette réponse est terriblement fausse. Consultez la documentation:ISNULL
.Essayer:
la source
Créez la fonction suivante
Et ça marchera.
Vous pouvez créer différentes versions avec différents types de paramètres.
la source