Использование IN с несколькими значениями в Oracle (Столбец_A, Столбец_B) IN (M, M) - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь отфильтровать записи на основе двух значений.

В таблице, с которой я работаю, есть учетные записи студентов. Два столбца, на которые я смотрю, должны удовлетворять следующему условию.

  • Если Column_A содержит учетные записи (1310001,1320002,4520004,6170004), то Column_B не может содержать учетные записи (1310001,1320002,4520004 , 6170004) и учетные записи, начинающиеся с (12,119,03,02).

  • Если Column_B содержит учетные записи (1310001,1320002,4520004,6170004), то Column_A не может содержать учетные записи (1310001,1320002, 4520004,6170004) и учетные записи, начинающиеся с (12,119,03,02).

Пожалуйста, дайте мне знать, как это можно записать в SQL.

1 Ответ

3 голосов
/ 07 января 2020

Я бы express ваш логин c как:

SELECT *
FROM yourTable
WHERE
    (
        Column_A IN (1310001,1320002,4520004,6170004) AND
        Column_B NOT IN (1310001,1320002,4520004,6170004) AND
        NOT REGEXP_LIKE(Column_B, '^(12|119|03|02)')
    ) AND
    (
        Column_B IN (1310001,1320002,4520004,6170004) AND
        Column_A NOT IN (1310001,1320002,4520004,6170004) AND
        NOT REGEXP_LIKE(Column_A, '^(12|119|03|02)')
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...