У меня есть таблица в postgres, содержащая разобранную информацию об адресе. Когда я запускаю следующий запрос, я получаю правильные результаты:
select count(*) from address_table
where (mod(to_number(to_address_left, '99999999'), 2) = 0
and to_address_left <> ' ')
Но когда я добавляю к нему ИЛИ ...
select count(*) from address_table
where (mod(to_number(to_address_left, '99999999'), 2) = 0
and to_address_left <> ' ')
or (from_address_left <> ' ')
Я получаю следующую ошибку ...
ERROR: invalid input syntax for type numeric: " "
SQL state: 22P02
Я считаю, что это ошибка, связанная с функцией TO_NUMBER. Я знаю, что в некоторых из этих записей есть пробелы (преднамеренно), поэтому "and to_address_left <> ''" включен. Но я не понимаю, почему добавление оператора OR, который ссылается на совершенно другое поле, приводит к тому, что в противном случае автономная функция TO_NUMBER генерирует ошибку.
Этот код отлично работает в Oracle SQL. Почему здесь не работает?