Я пытаюсь выяснить, как обработать этот запрос.
У меня есть таблица с несколькими столбцами.Из этих столбцов есть два: colA и colB.
Значения в colA и colB в строке будут совпадать с другой строкой в той же таблице, однако фактические значения в этих столбцах не будут равны.
Таким образом, для любой строки:
Col_A | Col_B
val1.0 | val2.0
будет еще одна строка
Col_A | Col_B
val1.1| val2.1
Существует исключение, когда этой соответствующей строки не существует, и именно эту строку янужно выбрать.
Любая помощь с логикой вокруг этого очень ценится.
Я работал с запросами этого типа
Select *
from table1 e
where (e.Col_A = val1.0 and e.Col_B = val2.0)
and (e.Col_A != val1.1 and e.Col_B ! = val2.1)
это даже близко?Вышесказанное поражает, когда я пишу, что если одно из условий истинно, то и другое также должно быть истинным.
Заранее благодарим за любую помощь или подсказки.
Дополнительная информация, поскольку были запросы науточнение.
Я занимаюсь обновлением таблицы.В этой таблице есть столбец, который будет перехватывать и отмечать любые исключения из правила, которое я изложил выше.
Таблица содержит около 12 столбцов, и два из этих столбцов могут иметь одно из двух возможных значений.Типы значений для этих двух столбцов: varchar2 (30). Обычно для любой строки, имеющей набор значений, будет другая строка с другими значениями.Некоторые другие несвязанные столбцы могут быть одинаковыми, но не обязательно.
Код, который я реализовал, похож на приведенный ниже и основан на предложении левого соединения от KAJ.Однако кажется, что он возвращает слишком много строк в прямом запросе, и при обновлении он фактически обновляет каждую строку.
Update TableA Set Col_Ex = ('Exception')
Where Exists
(Select ... Example from Kaj s suggestion below);