Перейти к основному содержанию
Предложение WHERE позволяет фильтровать данные, поступающие из предложения FROM оператора SELECT. Если есть предложение WHERE, за ним должно следовать выражение типа UInt8. Строки, для которых это выражение вычисляется в 0, исключаются из дальнейших преобразований или из результата. Выражение после предложения WHERE часто используется с операторами сравнения и логическими операторами, а также с одной из множества обычных функций. При вычислении выражения WHERE могут использоваться индексы и отсечение партиций, если базовый движок таблицы это поддерживает.
PREWHEREСуществует также оптимизация фильтрации под названием PREWHERE. PREWHERE — это оптимизация, которая позволяет применять фильтрацию более эффективно. Она включена по умолчанию, даже если предложение PREWHERE явно не указано.

Проверка значения NULL

Если нужно проверить, является ли значение NULL, используйте: В противном случае выражение с NULL никогда не будет истинным.

Фильтрация данных с помощью логических операторов

Следующие логические функции можно использовать вместе с предложением WHERE, чтобы объединять несколько условий:

Использование столбцов UInt8 в качестве условия

В ClickHouse столбцы UInt8 можно напрямую использовать в качестве логических условий: 0 соответствует false, а любое ненулевое значение (обычно 1) — true. Пример приведён в разделе ниже.

Использование операторов сравнения

Можно использовать следующие операторы сравнения:

Сопоставление с шаблоном и условные выражения

Помимо операторов сравнения, в предложении WHERE можно использовать сопоставление с шаблоном и условные выражения. См. раздел “Сопоставление с шаблоном и условные выражения”, чтобы посмотреть примеры использования.

Выражение с литералами, столбцами или подзапросами

Выражение после предложения WHERE также может включать литералы, столбцы или подзапросы — вложенные операторы SELECT, которые возвращают значения для использования в условиях. Вы можете комбинировать литералы, столбцы и подзапросы в сложных условиях:

Примеры

Проверка значения NULL

Запросы со значениями NULL:

Фильтрация данных с помощью логических операторов

Рассмотрим следующую таблицу и данные:
1. AND — оба условия должны быть истинны:
2. OR — хотя бы одно из условий должно выполняться:
3. NOT — отрицает условие:
4. XOR — должно быть истинным ровно одно условие (но не оба сразу):
5. Объединение нескольких операторов:
6. Использование синтаксиса функции:
Синтаксис с ключевыми словами SQL (AND, OR, NOT, XOR) обычно более удобочитаем, но синтаксис функций может быть полезен в сложных выражениях или при построении динамических запросов.

Использование столбцов UInt8 в качестве условия

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

Использование операторов сравнения

В примерах ниже используются таблица и данные из примера выше. Результаты для краткости не приводятся. 1. Явная проверка на равенство с true (= 1 или = true):
2. Явная проверка на равенство false (= 0 or = false):
3. Условие неравенства (!= 0 или != false):
4. Больше:
5. Меньше или равно:
6. Комбинирование с другими условиями:
7. Использование оператора IN: В примере ниже (1, true)кортеж.
Для этого также можно использовать массив:
8. Смешение стилей сравнения:

Сопоставление с шаблоном и условные выражения

В примерах ниже используются таблица и данные из примера, приведённого выше. Результаты опущены для краткости.

Примеры LIKE

Примеры ILIKE

Примеры функции IF

Примеры multiIf

Примеры CASE

Простой CASE:
Поисковый CASE:
Последнее изменение 25 июня 2026 г.