Oracle WHERE Несколько столбцов в подзапросе "cx_Oracle.DatabaseError: ORA-00920: недопустимый реляционный оператор" - PullRequest
0 голосов
/ 30 сентября 2019

Я хочу выбрать из таблицы, в которой несколько столбцов выбраны из подзапроса, используя ГДЕ (COLUMN1, COLUMN2, COLUMN3) IN (SUB QUERY)

    SELECT * FROM ORDER_DETAIL
    WHERE (ORDER_ID, ACTION_SEQUENCE, DETAIL_SEQUENCE)
    IN (
        SELECT ORDER_ID, ACTION_SEQUENCE, DETAIL_SEQUENCE
        FROM ORDER_DETAIL
        WHERE ORDER_ID=314239027
    );

Но возникает исключение

cx_Oracle.DatabaseError: ORA-00920: недопустимый реляционный оператор

1 Ответ

0 голосов
/ 30 сентября 2019

Что касается Oracle, то все в порядке. Но сам запрос не имеет особого смысла. Он равен (с помощью моих друзей)

select *
from order_detail
where order_id = 314239027
  and action_sequence is not null     -- if those columns ...
  and detail_sequence is not null     -- ... can contain nulls

, поэтому я предлагаю вам использовать его вместо.

...