S ANSI_NULLS OFF
, NULL = NULL
vyhodnotí jako TRUE
.
Se ANSI_NULLS ON
(výchozí nastavení), NULL = NULL
se vyhodnotí jako NULL
.
NULL IS NULL
se vždy vyhodnotí jako TRUE
.
V MySQL však nemůžete vypnout ANSI_NULLS. Pravděpodobně máte na mysli MS SQL Server.
Budoucí verze MS SQL Server nebudou podporovat ANSI_NULLS OFF
, takže bych to nepoužil.
Měli byste nechat ANSI_NULLS ON
a použijte IS NULL
vyhodnotit, zda je něco NULOVÉ.
Pokud máte problémy se zapamatováním toho, jak ve výchozím nastavení funguje NULL (ANSI_NULLS ON), měli byste hodnotu NULL považovat za „neznámé ". Pokud jsou například v místnosti dva cizí lidé, jejich jména jsou NULL. Pokud váš dotaz zní:"Jsou jejich jména stejná?" Vaše odpověď JE NULL.
Nyní řekněme, že Bob je v místnosti pouze s jedním cizincem, jehož jméno je NULL. Opět odpověď na váš dotaz "Jsou jejich jména stejná?" JE NULL. Všimněte si, že pokud něco porovnáte s hodnotou NULL, vaše odpověď JE NULL.