Запрос SQL - записи в операторе SQL Select, но НЕ в запрашиваемой таблице - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть большой список идентификаторов CustID, к которым мне нужно обратиться, чтобы узнать, находятся ли они в таблице CUSTOMER; Я хочу, чтобы результат сказал мне, какие CustID находятся в таблице, а какие CustID нет в таблице.

Я предоставил короткий список ниже, чтобы дать представление о том, что мне нужно делать. База данных Oracle Таблица: Заказчик
Первичный ключ: CustID

Сценарий: Таблица клиентов имеет только следующие (2) CustID: ‘12345’, ‘56789’

Sql:

Select * from CUSTOMERS where CUSTID in (‘12345’, ‘56789’, ‘01234’);

Я хочу, чтобы результат сказал мне, что и "12345", и "56789" находятся в таблице, и что "01234" НЕ.

Ответы [ 2 ]

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

Вам нужен left join или подзапрос для этого. Точный синтаксис зависит от базы данных. Типичный синтаксис:

select i.custid,
       (case when c.custid is not null then 1 else 0 end) as exists_flag
from (select '12345' as custid union all
      select '56789' union all
      select '01234'
     ) ci left join
     customers c 
     on c.cust = i.custid;
0 голосов
/ 15 сентября 2018
select
    v.CustID,
    exists (select * from Customer where Customer.CustID = v.CustID)
from (values (12345), (56789), (01234)) v (CustID);

Результаты:

custid    exists
12345     true
56789     true
1234      false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...