В запросе сегодня я хотел выбрать строки, которые имели конкретное название компании в любом из двух столбцов из двух разных таблиц. Я сделал это, какИспользование OR в WHERE дает неожиданные результаты
WHERE (N.COMPANY LIKE '%ACME%' OR C.COMPANY LIKE '%ACME%')
Во-первых, потребовалось 20 минут, чтобы бежать, что было странно, потому что, если я только фильтруется на одной из колонн потребовалось около 10 секунд. Во-вторых, когда он закончил, значения для некоторых столбцов в некоторых строках были NULL, когда я знаю, что в базе данных есть значения для этих столбцов в этих записях. и так, что здесь происходит? Почему SQL не может выполнить OR в двух столбцах из двух таблиц?
(я работал вокруг него с UNION - я побежал за C.COMPANY LIKE '%ACME%'
и UNIONED его с SELECT... WHERE N.COMPANY LIKE '%ACME%'
)
Что вы имеете в виду„значений для некоторых строк были NULL“? Очевидно, вы присоединяетесь к тому, что вы не показываете нам, и вы делаете это неправильно! –
Нам понадобится полный запрос (или, возможно, уменьшенная версия, воспроизводящая вашу проблему), некоторые примеры ввода и вывода и фактического вывода. – Dukeling
Я очистил текст, чтобы уточнить, что я имел в виду. Весь запрос большой и имеет около 5 объединений. Он отлично работает без соединения OR в ГДЕ. – user2129949