Il s'agit plus d'une question pour satisfaire ma propre curiosité. Compte tenu de la déclaration suivante:SQL Server 2005 - Utilisation de Null dans une comparaison
DECLARE @result BIT
SET @result = CASE WHEN NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
Pourquoi dois-je rentrerai "1" au lieu de "0"
Changer à:
DECLARE @result BIT
SET @result = CASE WHEN NULL IS NULL
OR NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
me donne correctement les "0"
Je sais que les comparaisons NULL peuvent être difficiles, mais cet exemple particulier a échappé à notre processus de révision de code.
Toute précision seraient grandement appréciés
Votre code n'est pas compilé dans Management Studio. Etes-vous sûr que ce T-SQL valide (c'était une question spécifique à SQL 2005)? Je n'ai jamais vu le mot clé UNKNOWN utilisé dans T-sql. – luksan
@luksan Je substituais dans les valeurs de table de vérité dans une tentative d'être utile ce n'est pas valide SQL! –
Son code de pseudo. – JNappi