As expressões booleanas são permitidas na cláusula WHERE e nas restrições de verificação. As expressões booleanas nas restrições de verificação possuem limitações não descritas aqui; para obter mais informações deve ser consultada a Cláusula CONSTRAINT. As expressões booleanas nas cláusulas WHERE possuem uma sintaxe bem liberal; consulte, por exemplo, a Cláusula WHERE.
Operador | Explicação e exemplo | Sintaxe |
---|---|---|
AND, OR, NOT |
Avalia os operandos, que são expressões booleanas
(AEROPORTO_ORIGEM = 'SFO') OR
(AEROPORTO_DESTINO = 'GRU')
-- retorna verdade
|
{ Expressão AND Expressão | Expressão OR Expressão | NOT Expressão } |
Comparações |
<, =, >, <=, >=, <> são aplicáveis a todos os tipos nativos.
DATE('1998-02-26') <
DATE('1998-03-01')
-- retorna verdade
|
Expressão { < | = | > | <= | >= | <> } Expressão |
IS NULL, IS NOT NULL | Testa se o resultado de uma expressão é nulo ou não.
WHERE NOME_DO_MEIO IS NULL |
Expressão IS [ NOT ] NULL |
LIKE |
Tenta fazer a correspondência entre uma expressão de caractere e um padrão de
caractere, que é uma cadeia de caracteres que inclui um ou mais caracteres
curinga.
O caractere % corresponde a qualquer número (zero ou mais) de caracteres na posição correspondente na primeira expressão de caractere. O caractere _ corresponde a um caractere na posição correspondente na expressão de caractere. Qualquer outro caractere corresponde apenas a este caractere na posição
correspondente na expressão de caractere.
cidade LIKE 'Sant_' Para tratar os caracteres % e _ como caracteres constante, o caractere
deve ser precedido por um caractere de escape opcional, especificado na
cláusula ESCAPE.
SELECT a FROM tabA WHERE a LIKE '%=_' ESCAPE '=' |
ExpressãoCaractere [ NOT ] LIKE ExpressãoCaractere ComCaractereCuringa [ ESCAPE 'CaractereDeEscape'] |
BETWEEN |
Testa se o primeiro operando está entre o segundo e o terceiro operandos.
O segundo operando deve ser menor que o terceiro operando.
Aplicável apenas aos tipos de dado onde se pode aplicar <= e >=.
WHERE DATA_DE_RESERVA BETWEEN DATE('1998-02-26') AND DATE('1998-03-01') |
Expressão [ NOT ] BETWEEN Expressão AND Expressão |
IN |
Opera sobre uma subconsulta a tabela ou uma lista de valores.
Retorna TRUE se o valor da expressão à esquerda está presente no resultado da
subconsulta a tabela ou na lista de valores.
A subconsulta a tabela pode retornar várias linhas, mas deve retornar uma
única coluna.
WHERE DATA_DE_RESERVA NOT IN (SELECT DATA_DE_RESERVA FROM RESERVAS_EM_HOTEL WHERE QUARTOS_DISPONÍVEIS = 0) |
{ Expressão [ NOT ] IN SubconsultaTabela | Expressão [ NOT ] IN ( Expressão [, Expressão ]* ) } |
EXISTS |
Opera sobre uma subconsulta a tabela.
Retorna TRUE se a subconsulta a tabela retornar alguma linha,
e FALSE se não retornar nenhuma linha.
A subconsulta a tabela pode retornar várias colunas (somente se for utilizado
* para indicar várias colunas) e linhas.
WHERE EXISTS (SELECT * FROM VÔOS WHERE AEROPORTO_DESTINO = 'SFO' AND AEROPORTO_ORIGEM = 'GRU') |
[NOT] EXISTS SubconsultaTabela |
Comparação quantificada |
A comparação quantificada é um operador de comparação
(<, =, >, <=, >=, <>)
com ALL, ANY ou SOME aplicado.
Opera sobre subconsultas a tabela, que podem retornar várias linhas, mas devem retornar uma única coluna. Se for utilizado ALL, a comparação deverá ser verdade para todos os valores
retornados pela subconsulta a tabela.
Se for utilizado ANY ou SOME, a comparação deverá ser verdade para pelo menos um
valor da subconsulta a tabela.
ANY e SOME são equivalentes.
WHERE TAXA_NORMAL < ALL (SELECT ORÇAMENTO/550 FROM GRUPOS) |
Expressão OperadorComparação { ALL | ANY | SOME } SubconsultaTabela |