Оператор EXCEPT возвращает только те строки, которые присутствуют в результате первого запроса и отсутствуют в результате второго.
- Оба запроса должны иметь одинаковое количество столбцов в одном и том же порядке и с одинаковыми типами данных.
- Результат
EXCEPTможет содержать повторяющиеся строки. ИспользуйтеEXCEPT DISTINCT, если это нежелательно. - Несколько операторов
EXCEPTвыполняются слева направо, если скобки не указаны. - Оператор
EXCEPTимеет тот же приоритет, что и операторUNION, и более низкий приоритет, чем операторINTERSECT.
Синтаксис
EXCEPT() можно использовать, чтобы исключить столбцы из результата для той же таблицы, как и в BigQuery (Google Cloud), используя следующий синтаксис:
Примеры
EXCEPT.
Фильтрация чисел с помощью оператора EXCEPT
Query
Response
Исключение определённых столбцов с помощью EXCEPT()
EXCEPT() можно использовать, чтобы быстро исключить столбцы из результата. Например, если нужно выбрать все столбцы из таблицы, кроме нескольких отдельных столбцов, как показано в примере ниже:
Query
Response
Использование EXCEPT и INTERSECT с данными о криптовалютах
EXCEPT и INTERSECT во многих случаях можно использовать взаимозаменяемо, применяя разную булеву логику; оба оператора полезны, если у вас есть две таблицы с общим столбцом (или столбцами).
Например, предположим, что у нас есть несколько миллионов строк исторических данных о криптовалютах, содержащих цены сделок и объём:
Query
Response
holdings, в которой перечислены принадлежащие нам криптовалюты и количество монет:
Query
EXCEPT, чтобы ответить на такой вопрос: “Какие монеты, которыми мы владеем, ни разу не торговались ниже $10?”:
Query
Response
Использование EXCEPT DISTINCT
DISTINCT к EXCEPT, чтобы удалить из результата повторяющиеся строки:
Query
Response