Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

T-SQL pas dans (sélectionnez ne fonctionne pas (comme prévu)

NOT IN ne se comporte pas comme prévu lorsque la liste contient NULL valeurs.

En fait, si des valeurs sont NULL , aucune ligne n'est renvoyée. N'oubliez pas :en SQL, NULL signifie valeur "indéterminée", et non "valeur manquante". Donc, si la liste contient un NULL valeur alors il pourrait être égal à une valeur de comparaison.

Donc, customerid doit être NULL dans les orders tableau.

Pour cette raison, je vous recommande fortement de toujours utiliser NOT EXISTS avec une sous-requête plutôt que NOT IN .