Перейти к основному содержимому

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_idcustomer_idorder_datestatusamount
232018-01-02completed20.0000
3942018-01-04completed1.00000
4502018-01-05completed25.0000
Loading table...

Синтаксис оператора OR в Snowflake, Databricks, BigQuery и Redshift​

Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают оператор OR, и синтаксис выглядит одинаково на каждой платформе. Вы можете увидеть, что оператор OR заменяется на более подходящий оператор IN.

Сценарии использования OR​

Мы чаще всего видим использование операторов OR в запросах и моделях dbt для:

  • Возврата результатов для полей с различными значениями
  • Объединения таблиц по нескольким полям с использованием оператора OR (предупреждение: это может быть немного пугающе и неэффективно, поэтому используйте операторы OR в объединениях очень осторожно и рассмотрите возможность рефакторинга вашей работы, чтобы избежать таких сценариев)

Это не исчерпывающий список того, где ваша команда может использовать OR в вашей работе с данными, но он содержит некоторые общие сценарии, с которыми аналитики сталкиваются ежедневно.

Нашли ошибку?

0
Loading