Ситуация для условия соединения - PullRequest
0 голосов
/ 20 сентября 2018

Привет, я хочу использовать оператор case в условии where или некоторую похожую логику.Я хочу игнорировать условие где, когда в таблице tmp_collaboration нет строк, и использовать условие, когда в таблице есть несколько строк.

Select clbid from tmp_collaboration;

select customer_id, product_id ,clbid 
from customers c
    where hdr_id = 10
          and clbid in (select clbid from tmp_collaboration)
          and status = 'y';

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

почему бы не использовать JOIN .. если в таблице есть строки, строки участвуют, иначе нет.

select customer_id, product_id ,clbid 
from customers c
INNER JOIN tmp_collaboration t on t.clbid = c.clbid
    AND  hdr_id = 10
    AND status = 'y';
0 голосов
/ 20 сентября 2018

Это то, что вы хотите?

select customer_id, product_id ,clbid 
from customers c
where hdr_id = 10 and status = 'y' and
      (clbid in (select clbid from tmp_collaboration) or
       not exists (select 1 from tmp_collaboration)
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...