Quel est l'équivalent de la fonction Nz dans MS Access dans MySQL? Est-ce que NZ est un standard SQL?

Qu'est-ce que L'équivalent MySQL du Nz fonction dans Microsoft Access? Nz un standard SQL?

dans Access, le Nz fonction permet de retourner une valeur lorsqu'une variante est null. Source

La syntaxe de Nz fonction:

Nz ( variant, [ value_if_null ] )
10
demandé sur shA.t 2008-10-22 00:11:56

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.

11
répondu Bill Karwin 2008-10-21 21:24:47

Vous pouvez jeter un oeil à IFNULL ou COALESCE. Si je me souviens bien, IFNULL fonctionne pour MySQL.

3
répondu Mike Wills 2015-06-11 06:25:28

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.

2
répondu diamondsea 2013-05-10 20:05:07

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

0
répondu Dan Tupper 2011-08-31 20:09:12

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

0
répondu user31034 2013-11-28 13:34:58