Проблема в SQLite || оператор не является логическим или! Это оператор конкатенации строк.
OR - правильный оператор.
Также, || имеет более высокий приоритет, чем все другие операторы SQLite, поэтому мои выражения даже не оценивались в том порядке, в котором я думал.
Правильное выражение:
SELECT is_current FROM sp_table WHERE is_current != 1 OR is_current IS NULL;
Наконец, стоит отметить, что вы не можете заменить это выражение с: SELECT is_current FROM sp_table WHERE is_current != 1
, потому что в SQLite NULL != 1
оценивает ложь. Вы должны явно проверить: is_current IS NULL
.
SQLite reference
Не могли бы вы по крайней мере дать ваш вопрос хорошее название, чтобы другие могли найти его? – PeeHaa
Также не только в sqlite, где '||' не делает то, что вы считали ... – PeeHaa