

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Condições lógicas
<a name="logical-conditions-spark"></a>

As condições lógicas combinam o resultado de duas condições para produzir um único resultado. Todas as condições lógicas são operadores binários com um tipo de retorno booleano.

## Sintaxe
<a name="logical_condition-synopsis"></a>

```
expression
{ AND | OR }
expression
NOT expression
```

As condições lógicas usam uma lógica booleana de três valores onde o valor nulo representa uma relação desconhecida. A tabela a seguir descreve os resultados para condições lógicas, onde `E1` e `E2` representam expressões:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/clean-rooms/latest/sql-reference/logical-conditions-spark.html)

O operador NOT é avaliado antes de AND e o operador AND é avaliado antes do operador OR. O uso de qualquer parênteses pode cancelar esta ordem de avaliação padrão. 

### Exemplos
<a name="logical_condition-examples"></a>

O seguinte exemplo retorna o USERID e USERNAME da tabela USERS onde o usuário gosta de Las Vegas e de esportes: 

```
select userid, username from users
where likevegas = 1 and likesports = 1
order by userid;

userid | username
--------+----------
1 | JSG99FHE
67 | TWU10MZT
87 | DUF19VXU
92 | HYP36WEQ
109 | FPL38HZK
120 | DMJ24GUZ
123 | QZR22XGQ
130 | ZQC82ALK
133 | LBN45WCH
144 | UCX04JKN
165 | TEY68OEB
169 | AYQ83HGO
184 | TVX65AZX
...
(2128 rows)
```

O próximo exemplo retorna o USERID e USERNAME da tabela USERS onde o usuário gosta de Las Vegas, de esportes ou de ambos. Essa consulta retorna todas as saídas do exemplo anterior, mais os usuários que gostam somente de Las Vegas ou de esportes. 

```
select userid, username from users
where likevegas = 1 or likesports = 1
order by userid;

userid | username
--------+----------
1 | JSG99FHE
2 | PGL08LJI
3 | IFT66TXU
5 | AEB55QTM
6 | NDQ15VBM
9 | MSD36KVR
10 | WKW41AIW
13 | QTF33MCG
15 | OWU78MTR
16 | ZMG93CDD
22 | RHT62AGI
27 | KOY02CVE
29 | HUH27PKK
...
(18968 rows)
```

A seguinte consulta usa parênteses em torno da condição `OR` para encontrar locais em Nova Iorque ou na Califórnia onde Macbeth foi apresentada: 

```
select distinct venuename, venuecity
from venue join event on venue.venueid=event.venueid
where (venuestate = 'NY' or venuestate = 'CA') and eventname='Macbeth'
order by 2,1;

venuename                |   venuecity
----------------------------------------+---------------
Geffen Playhouse                       | Los Angeles
Greek Theatre                          | Los Angeles
Royce Hall                             | Los Angeles
American Airlines Theatre              | New York City
August Wilson Theatre                  | New York City
Belasco Theatre                        | New York City
Bernard B. Jacobs Theatre              | New York City
...
```

A remoção dos parênteses neste exemplo altera a lógica e os resultados da consulta. 

O seguinte exemplo usa o operador `NOT`: 

```
select * from category
where not catid=1
order by 1;

catid | catgroup |  catname  |                  catdesc
-------+----------+-----------+--------------------------------------------
2 | Sports   | NHL       | National Hockey League
3 | Sports   | NFL       | National Football League
4 | Sports   | NBA       | National Basketball Association
5 | Sports   | MLS       | Major League Soccer
...
```

O seguinte exemplo usa uma condição `NOT` seguida de uma condição `AND`: 

```
select * from category
where (not catid=1) and catgroup='Sports'
order by catid;

catid | catgroup | catname |             catdesc
-------+----------+---------+---------------------------------
2 | Sports   | NHL     | National Hockey League
3 | Sports   | NFL     | National Football League
4 | Sports   | NBA     | National Basketball Association
5 | Sports   | MLS     | Major League Soccer
(4 rows)
```