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

SQL AND

Оператор AND возвращает результаты, которые соответствуют всем переданным в него условиям; в отличие от оператора OR, которому достаточно одного истинного условия. Вы часто увидите оператор AND в предложении WHERE для фильтрации результатов запроса или в операторе case для создания нескольких критериев для результата.

Используйте эту страницу, чтобы понять, как использовать оператор AND и почему он может быть полезен в аналитической инженерии.

Как использовать оператор AND

Использовать оператор AND просто, и вы обычно увидите его в предложении WHERE для соответствующей фильтрации результатов запроса, в операторах case или в объединениях, которые включают несколько полей.

-- and в предложении where
where <condition_1> and <condition_2> and

-- and в операторе case
case when <condition_1> and <condition_2> then <result_1>

-- and в объединении
from <table_a>
join <table_b> on
<a_id_1> = <b_id_1> and <a_id_2> = <b_id_2>
Суррогатные ключи > объединения с AND

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

Пример оператора SQL AND

select
order_id,
status,
round(amount) as amount
from {{ ref('orders') }}
where status = 'shipped' and amount > 20
limit 3

Этот запрос, использующий пример набора данных таблицы orders магазина Jaffle, вернет результаты, где статус заказа — отправлен, а сумма заказа превышает $20:

order_idstatusamount
74shipped30
88shipped29
78shipped26

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

Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают оператор AND с одинаковым синтаксисом на каждой платформе.

0