Skip to main content
Предложение 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:
Последнее изменение 3 июля 2026 г.