Quel est l'équivalent de la fonction Nz dans MS Access dans MySQL? Est-ce que NZ est un standard SQL?
5 réponses
COALESCE()
la fonction fait ce que vous décrivez. C'est du SQL standard et il devrait être supporté dans toutes les bases de données SQL.
IFNULL()
la fonction n'est pas standard SQL. Seules quelques marques de bases de données supportent cette fonction.
Vous pouvez jeter un oeil à IFNULL
ou COALESCE
. Si je me souviens bien, IFNULL
fonctionne pour MySQL.
COALESCE fait exactement ce que L'OP demande, comme le fait IFNULL:
SELECT Nz(MightBeNullVar, 0) FROM ... (MS Access version)
SELECT COALESCE(MightBeNullVar, 0) FROM ... (MySQL version)
SELECT IFNULL(MightBeNullVar, 0) FROM ... (MySQL version)
la différence est la COALESCE peut rechercher à travers plusieurs variables et retourner la première non-nulle:
SELECT COALESCE(MightBeNullVar, MightAlsoBeNullVar, CouldBeNullVar, 0) FROM ... (MySQL version)
chacun de ces retournera un 0 (zéro) si aucune des valeurs ont une valeur définie (sont nuls).
le IFNULL est (assez insignifiant) plus rapide. Il y a probablement d'autres choses meilleures à optimiser dans votre requête avant de s'embêter avec les questions IFNULL vs COALESCE. Si vous avez plusieurs choses à vérifier, utilisez COALESCE. Si vous n'avez qu'une seule valeur à vérifier, utilisez IFNULL.
peut-être savoir ce que la fonction NZ() DE MS Access fait réellement serait utile (avant de répondre avec des suggestions complètement invalides). Le test de la fonction NZ () pour Null et remplace le Null par une chaîne vide, une valeur zéro ou optionnellement une valeur que l'utilisateur entre.
COALESCE ne se rapproche même pas, en fait il renvoie une valeur nulle si non nulle nulle dans une liste'???'
IFNULL() la Fonction est ce que vous cherchez pour.
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html
un coup d'oeil à la nulle en sécurité de l'opérateur <=>
Peut-être que ça pourrait aider : http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_equal-to