Не в не существует - PullRequest
       19

Не в не существует

0 голосов
/ 08 мая 2019

У меня есть «не в», которое я пытаюсь превратить в «не существует» в предложении where моего выбора

Я попытался переключить минимальный минимум, но ничего не было заполнено (оно выполнено

where  [a] not in (
select 
    [a] 
from table
group by [a]
having count(*) > 1) -- Ignores Records with duplicate data

1 Ответ

1 голос
/ 08 мая 2019

Вы можете сделать это как:

where not exists (select 1
                  from table t2
                  where ?.a = t2.a
                  group by t2.a
                  having count(*) > 1
                 )

Часто, однако, это будет искать другую ссылку на то же значение в таблице в запросе. Если это так, избегайте агрегации:

where not exists (select 1
                  from table t2
                  where ?.a = t2.a and ?.id <> t2.id
                 )
...