SQL несколько условий в одном столбце - PullRequest
0 голосов
/ 10 апреля 2019

Мне нужно отобразить записи таблицы, используя предложение WHERE, которое, в свою очередь, зависит от значения другого столбца.

Скажем, к примеру, перечислите таблицы, которые потребляют> 200000 байтов, и индексы, которые потребляют> 100000 байтов из таблицы.Вывод: no rows selected Я считаю, что предложение WHERE взаимно исключает друг друга.

Я хотел бы получить обе записи (таблицы и индексы).

Пожалуйста, предложите наиболее эффективный способ добиться этого.

Несмотря на то, что я dba, я не очень хорош в SQL.

Ответы [ 2 ]

5 голосов
/ 10 апреля 2019

Вам не нужно объединение, просто объедините оба условия с OR

select segment_type, segment_name, bytes 
from dba_segments 
where (segment_type = 'INDEX' and bytes > 10000000)
   or (segment_type = 'TABLE' and bytes > 20000000);
1 голос
/ 10 апреля 2019

Вы можете достичь того, что хотите, не используя объединение, а с помощью условия или:

SELECT
    segment_name,
    bytes
FROM
    dba_segments
WHERE
    (segment_type='INDEX' and bytes>10000000)
    OR
    (segment_type='TABLE' and bytes>20000000)
...