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

У меня есть базовая таблица с одним миллионом номеров клиентов, всего один столбец. Теперь я хочу добавить второй столбец со значениями «1» и «0», если клиенты находятся в другой конкретной таблице.

Базовый стол:

select relationNr
from Relation

Второй стол:

select relationNr
from Contract
where startdate < '01-01-2019'
    and enddate is null
    and type = 'donor'

Я ожидаю два столбца, первый со всеми номерами отношений, а второй с 1 или 0, если, в зависимости от того, присутствует он во второй таблице или нет.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Используйте LEFT JOIN для достижения вашего результата:

SELECT
    relationNr
    ,IIF(c.relationnr IS NOT NULL,1,0) is_present
FROM
    Relation r
    LEFT JOIN Contract c ON r.relationnr = c.relationnr
        AND c.startdate < '01-01-2019'
        AND c.enddate is null
        AND c.type = 'donor'
0 голосов
/ 26 марта 2019

Для этого вы можете использовать внешнее соединение:

select r.relationnr, 
       case 
          when c.relationnr is not null then 1
          else 0
        end as is_present
from relation r
  left join (
    select relationNr
    from Contract
    where startdate < '01-01-2019'
      and enddate is null
      and type = 'donor' 
  ) c on c.relationnr = r.relationnr;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...