Я задаю этот вопрос, потому что не могу найти вопрос по той же причине.Причина в том, что когда я использую LIKE
, я получаю ПОСЛЕДОВАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ, а когда я использую оператор (=), я получаю НЕПРАВИЛЬНЫЕ РЕЗУЛЬТАТЫ.
ДЕЛО
У меня БОЛЬШОЙ ВИД(viewX) с несколькими внутренними объединениями и левыми объединениями, где некоторые столбцы имеют нулевые значения, потому что определение базы данных допускает это.
- Когда я открываю этот VIEW, я вижу, например: 8 строк в результате.
- Когда я запускаю, например:
select * from viewX where column_int = 34 and type_string = 'xyz'
, этот запрос показывает мне 100 строк, которые не определены в результате просмотра.[INCONSISTENT]
НО
- Когда я запускаю
select * from viewX where column_int = 34 and type_string like 'xyz'
, этот запрос показывает мне только 4 строки, которые определены в представлении при открытии (см. 1.) [ПОСТОЯННО]
Кто-нибудь задумывается о том, что здесь происходит?