Fiz a seguinte consulta para selecionar um registro que não é 0
.
SELECT * FROM Table WHERE Bit != 1 OR Bit IS NULL;
Por que o cheque Bit != 1
não é suficiente para um valor anulável BIT
?
Fiz a seguinte consulta para selecionar um registro que não é 0
.
SELECT * FROM Table WHERE Bit != 1 OR Bit IS NULL;
Por que o cheque Bit != 1
não é suficiente para um valor anulável BIT
?
Veja os seguintes resultados:
'true' != 'true'
→ falso'false' != 'true'
→ verdadeiroNULL != 'true'
→ null (e equivalente a false inWHERE
porque não é true)O que você pode fazer é usar
COALESCE
para mudar null para 'false'