У меня есть результирующий набор A
, который составляет 10 строк 1-10 {1,2,3,4,5,6,7,8,9,10}
, и B
, который составляет 10 строк, состоящих из четных 1-20 {2,4,6,8,10,12,14,16,18,20}
.Я хочу найти элементы, которые находятся в одном наборе, но не в обоих.Других столбцов в строках нет.
Я знаю, что UNION
будет A + B
.Я могу найти их как в A
, так и в B
с A INTERSECT B
.Я могу найти все строки в A
, которые не в B с A EXCEPT B
.
. Это подводит меня к вопросу, как найти все строки, которые находятся в A или B, но не оба , есть ли транзитивный эквивалент ( A EXCEPT B ) UNION ( B EXCEPT A)
в спецификации sql?Я хочу набор {1,3,5,7,9,12,14,16,18,20}
.Я полагаю, что это также можно записать A UNION B EXCEPT ( A INTERSECT B )
Есть ли в теории множеств математическая причина, почему это нельзя сделать за одну операцию (это можно объяснить тому, кто не понимает теорию множеств)?Или это просто не реализовано, потому что так просто создать себя?Или я просто не знаю лучшего способа сделать это?
Я думаю, что это должно быть где-то в спецификации SQL: я знаю, что вещь огромна.