2009-11-11 3 views
0

J'avais des problèmes avec un champ INT où il peut y avoir aucune valeur, une valeur nulle ou un nombre entier supérieur à zéro et depuisLe bon chemin en SQL pour traiter une différence entre aucune valeur et une valeur zéro dans un champ de type INT

SELECT foo FROM bar where foo = '' 

évalue de façon identique à

SELECT foo FROM bar where foo = 0 

Je redéfini foo comme NULL foo INT (11) de telle sorte que les lignes où aucune valeur pour foo est fourni ne sont pas sélectionnés soit par foo = 0 ou foo = '' mais seulement par foo IS NULL

Est-ce une bonne façon de gérer une différence entre une valeur nulle et une valeur nulle?

+0

Alternativement, [Comment gérer les informations manquantes sans utiliser NULL] (http://www.dcs.warwick.ac.uk/~hugh/TTM/Missing-info-without-nulls.pdf) – onedaywhen

Répondre

7

Oui; Les valeurs nulles sont la manière correcte de spécifier qu'un champ n'a aucune valeur.