Перейти к основному содержанию
Оператор EXCEPT возвращает только те строки, которые присутствуют в результате первого запроса и отсутствуют в результате второго.
  • Оба запроса должны иметь одинаковое количество столбцов в одном и том же порядке и с одинаковыми типами данных.
  • Результат EXCEPT может содержать повторяющиеся строки. Используйте EXCEPT DISTINCT, если это нежелательно.
  • Несколько операторов EXCEPT выполняются слева направо, если скобки не указаны.
  • Оператор EXCEPT имеет тот же приоритет, что и оператор UNION, и более низкий приоритет, чем оператор INTERSECT.

Синтаксис

Условием может быть любое выражение — в зависимости от ваших требований. Кроме того, EXCEPT() можно использовать, чтобы исключить столбцы из результата для той же таблицы, как и в BigQuery (Google Cloud), используя следующий синтаксис:

Примеры

Примеры в этом разделе демонстрируют использование оператора EXCEPT.

Фильтрация чисел с помощью оператора EXCEPT

Вот простой пример, который возвращает числа от 1 до 10, не входящие в диапазон от 3 до 8:
Query
Response

Исключение определённых столбцов с помощью EXCEPT()

EXCEPT() можно использовать, чтобы быстро исключить столбцы из результата. Например, если нужно выбрать все столбцы из таблицы, кроме нескольких отдельных столбцов, как показано в примере ниже:
Query
Response

Использование EXCEPT и INTERSECT с данными о криптовалютах

EXCEPT и INTERSECT во многих случаях можно использовать взаимозаменяемо, применяя разную булеву логику; оба оператора полезны, если у вас есть две таблицы с общим столбцом (или столбцами). Например, предположим, что у нас есть несколько миллионов строк исторических данных о криптовалютах, содержащих цены сделок и объём:
Query
Response
Теперь предположим, что у нас есть таблица holdings, в которой перечислены принадлежащие нам криптовалюты и количество монет:
Query
Мы можем использовать EXCEPT, чтобы ответить на такой вопрос: “Какие монеты, которыми мы владеем, ни разу не торговались ниже $10?”:
Query
Response
Это означает, что из четырёх криптовалют, которыми мы владеем, только Bitcoin ни разу не опускался ниже $10 (судя по ограниченным данным, приведённым в этом примере).

Использование EXCEPT DISTINCT

Обратите внимание: в результате предыдущего запроса было несколько позиций Bitcoin. Вы можете добавить DISTINCT к EXCEPT, чтобы удалить из результата повторяющиеся строки:
Query
Response
См. также
Последнее изменение 19 июня 2026 г.