Lorsque je définis un "type de table défini par l'utilisateur", comme: i place 0 et null dans cette variable de table.
Ensuite, je fais cette requête: p> obtiendra seulement donc, ma question est, si j'aime utiliser Type de table défini par l'utilisateur < / Fort>, mais j'ai aussi besoin d'utiliser la valeur null. Comment puis-je exécuter la requête correctement pour obtenir le résultat include Null Article. P> Merci (BTW, j'utilise MS SQL Server 2008 R2) P> P> item = 0 code> pas
item est null code> p> < p> Mettre simplement:
Sélectionnez quelque chose à partir de tire où l'élément de (0, null) code> ne fonctionne pas (pas d'erreur bien que)
Il doit être
sélectionner quelque chose à partir de tire où l'élément = 0 ou l'élément est null code> p>
3 Réponses :
NULL n'est pas égal à NULL dans SQL Server (et la plupart des autres systèmes de gestion de base de données). Vous auriez besoin de faire une regroupement sur la colonne jointe et d'utiliser une valeur sentinelle pour représenter NULLS. P>
Il y a une triche Utilisation EG P> isnull code> sur l'élément étant comparé.
SELECT something
FROM theTable
WHERE ISNULL(item,0) IN (0)
Les seules opérations de comparaison valides avec Alors, essayez ce qui suit p> null code> sont
est null code> ou
n'est pas null code>, d'autres personnes retournent toujours false (réellement - inconnue, voir Le commentaire de @ damien_the_unbeliever)
Bonne idée, alors au lieu de créer Bittype, j'ai peut-être besoin de créer une variable de table TinyintType, puis je n'ai pas besoin de lancer. J'essaierai
Yup, la taille du type de données est exactement la même, de sorte que vous ne vous perdrez pas dans la performance, mais vous gagnerez dans la polyvalence
Les autres comparaisons ne i> retour false code>, ils renvoient
inconnu code>. La différence est facilement apparente si vous placez un
non () code> autour d'une telle comparaison -
non (1 = null) code> n'est pas
vrai code>.
@Damien_the_unbeliever: Les autres comparaisons ne I> Retour i> inconnu code>, ils évaluent à
inconnu code> E.G. PostgreSQL a une prise en charge partielle du type
Boolean code> de SQL standard, mais utilise
null code> comme un espace réservé pour
inconnu code>, il peut donc être dit pour ce produit que ces comparaisons Évaluez-en à
Inconnu CODE> (valeur logique) mais retour i>
null code> (une valeur de données).