SQL OR
Мы пытались придумать что-то остроумное о использовании оператора OR в запросе, но ничего не смогли придумать 🤷
Используйте оператор OR в предложении WHERE, чтобы фильтровать по нескольким значениям полей или выполнять более сложные объединения по нескольким полям.
Как ис пользовать оператор OR
Оператор OR технически является булевым оператором, что означает, что он возвращает результаты, которые выполняются как истинные. Его легко использовать, и вы обычно увидите его в предложении WHERE для соответствующей фильтрации результатов запроса или в объединениях, которые включают несколько возможных полей.
Пример оператора OR
select
order_id,
customer_id,
order_date,
status,
amount
from {{ ref('orders') }}
where status = 'shipped' or status = 'completed'
limit 3
Этот запрос, использующий таблицу orders
из Jaffle Shop, вернет результаты, где статус заказа отправлен или завершен:
order_id | customer_id | order_date | status | amount |
---|---|---|---|---|
2 | 3 | 2018-01-02 | completed | 20.0000 |
3 | 94 | 2018-01-04 | completed | 1.00000 |
4 | 50 | 2018-01-05 | completed | 25.0000 |
Синтаксис оператора OR в Snowflake, Databricks, BigQuery и Redshift
Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают оператор OR, и синтаксис выглядит одинаково на каждой платформе. Вы можете увидеть, что оператор OR заменяется на более подходящий оператор IN.
Сценарии использования OR
Мы чаще всего видим использование операторов OR в запросах и моделях dbt для:
- Возврата результатов для полей с различными значениями
- Объединения таблиц по нескольким полям с использованием оператора OR (предупреждение: это может быть немного пугающе и неэффективно, поэтому используйте операторы OR в объединениях очень осторожно и рассмотрите возможность рефакторинга вашей работы, чтобы избежать таких сценариев)
Это не исчерпывающий список того, где ваша команда может использовать OR в вашей работе с данными, но он содержит некоторые общие сценарии, с которыми аналитики сталкиваются ежедневно.