84 votes

Comment comparer des valeurs qui peuvent toutes deux être null dans T-SQL

Je veux m’assurer que je n’insère pas de ligne en double dans ma table (par exemple, seule la clé primaire est différente). Tous mes champs autorisent NULLS car j’ai décidé null pour signifier « toutes les valeurs ». En raison de nulls, l’instruction suivante dans ma procédure stockée ne peut pas fonctionner :

puisque NULL = NULL n’est pas vrai.

Comment puis-je vérifier les doublons sans avoir d’instruction IF IS NULL pour chaque colonne ?

92voto

Graeme Job Points 71

Dans le même ordre d’idées que la réponse de @Eric, mais sans utiliser de `` symbole.

Cela ne sera vrai que si les deux valeurs sont , et égales l’une à l’autre, ou si les deux valeurs sont

56voto

Quassnoi Points 191041

Utiliser `` l’opérateur.

C’est ``sensible et efficace si vous avez un index composite sur tous vos champs :

Notez que si vous créez un `` index sur vos champs, votre vie sera beaucoup plus simple.

20voto

Shannon Severance Points 8143
<pre><code></code><p>Wordy Par rapport à la solution IFNULL/COALESCE. Mais fonctionnera sans avoir à penser à la valeur qui n’apparaîtra pas dans les données qui peuvent être utilisées comme remplaçant de NULL.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X