У меня есть две таблицы (A & B), которые имеют общее значение (цвет), обе таблицы могут иметь любое количество строк.Я пытаюсь найти способ определить, существуют ли все отдельные «Цвета» в таблице A в таблице B:
Я попытался использовать EXCEPT, что почти работает, к сожалению, он возвращает false, когда в таблице B больше цветовчем таблица A, которая не имеет значения, все, что меня волнует, это если каждый отдельный цвет из таблицы A находится в таблице B. Я возился с EXISTS и IN, но не вижу, чтобы получить правильные результаты
declare @TableA table (Color varchar(10))
declare @TableB table (Color varchar(10))
insert into @TableA(Color) values ('red')
insert into @TableA(Color) values ('blue')
insert into @TableA(Color) values ('green')
--insert into @TableA(Color) values ('orange')
insert into @TableB(Color) values ('red')
insert into @TableB(Color) values ('blue')
insert into @TableB(Color) values ('green')
insert into @TableB(Color) values ('yellow')
insert into @TableB(Color) values ('purple')
IF NOT EXISTS (
SELECT Color FROM @TableA
EXCEPT
SELECT Color FROM @TableB
)
SELECT 'true'
ELSE SELECT 'false'
Я бы хотел, чтобы вышеприведенный код вывел 'true'.
IF table A Colors > table B Colors THEN false
IF table A Colors <= table B Colors THEN true.