EXCEPT И EXCEPT ALL В POSTGRESQL (УСТАНОВИТЬ РАЗНИЦУ В POSTGRESQL)

  • Михаил
  • 12 мин. на прочтение
  • 117
  • 11 Nov 2022
  • 11 Nov 2022

EXCEPT в Postgresql возвращает строки, которые есть в первой таблице, но не во второй таблице. (т.е.) За исключением того, что оператор выполняет установленную разницу в Postgresql. За исключением того, что Оператор удаляет дубликат. Кроме ALL в postgresql не удаляются дубликаты.

И EXCEPT, и EXCEPT ALL в Postgresql возвращают общие строки двух разных SQL. Они отличаются способом обработки дубликатов.

За исключением Postgresql: выполняет DISTINCT для набора результатов, возвращает разницу в наборе в Postgresql.

За исключением Postgresql 4

 

EXCEPT ALL в Postgresql: выполняет заданную разницу, но не удаляет дубликаты .

Давайте обсудим на примере. Возьмем, к примеру, две таблицы

Таблица 1: SummerFruits

За исключением Postgresql 1

Таблица 2: Фрукты

За исключением Postgresql 2

 

ЗА ИСКЛЮЧЕНИЕМ в Postgresql:

SELECT * FROM SummerFruits
EXCEPT
SELECT * FROM Fruits

EXCEPT получает установленную разницу, а также удаляет дубликаты, поэтому результирующая таблица будет

За исключением Postgresql 3

 

КРОМЕ ВСЕХ в Postgresql:

SELECT * FROM SummerFruits
EXCEPT ALL
SELECT * FROM Fruits

EXCEPT ALL получает установленную разницу и не удаляет дубликаты, поэтому результирующая таблица будет

За исключением Postgresql 5