Operador booleano SQL padrão IS vs. operador igual a (=)
Na página da Wikipedia para SQL, existem algumas tabelas de verdade sobre lógica booleana no SQL. [1] A página da Wikipedia parece ter como fonte o padrão SQL: 2003.
A tabela verdade para o operador igual (=) é diferente do operador IS do rascunho do SQL: 2003.
Além disso, o artigo da Wikipedia observa que "IS NULL" (<predicado nulo>) é um caso especia
No SQL: 2003, parece que existe um opeartor "IS" que é um operador regular como AND, NOT e OR. No entanto, o <predicado nulo> ainda está lá.
Por que o <predicado nulo> existe quando o IS é um operador booleano regular? É para garantir que você possa usar a construção "IS NULL" com valores não booleanos sem coerção de tipo? É desencorajado usar "= NULL"?
O padrão SQL: 2011 funciona de maneira diferent
[1]:Wikipedia on SQL
[2]:SQL: rascunho de 2011 Página PDF 335
[3]: SQL: rascunho de 2003 Página PDF 397