# Expressões SQL

A sintaxe de muitas instruções e expressões inclui o termo Expressão, ou um termo para um tipo específico de expressão como SubconsultaTabela. Dentro das instruções, são permitidas expressões nestes pontos especificados. Alguns locais permitem apenas um tipo específico de expressão, ou uma expressão com uma propriedade específica. A Tabela de Expressões lista todas as expressões SQL possíveis, e indica onde são permitidas.

Quando não é especificado o contrário, é permitida uma expressão em qualquer lugar onde aparece Expressão na sintaxe. Isto inclui:

- ExpressãoSeleção
- Instrução UPDATE (porção SET)
- VALUES Expressão
- Cláusula WHERE

Obviamente, muitas outras instruções incluem estes elementos como blocos de construção e, portanto, permitem expressões como parte destes elementos.

Tabela 1. Tabela de Expressões
| Tipo da expressão | Explicação
--- | --- | ---
| Expressões gerais | Todas as expressões que podem resultar em um valor de qualquer tipo.
| Referência a coluna Permitida na ExpressãoSeleção, na instrução UPDATE e na cláusula WHERE das instruções de manipulação de dados. | O nome-da-coluna que faz referência ao valor da coluna tornado visível para a expressão que contém a referência a coluna. O nome-da-coluna deve ser qualificado pelo nome da tabela ou pelo nome da correlação se houver ambiguidade. O qualificador do nome-da-coluna deve ser o nome da correlação, se for atribuído nome de correlação à tabela na Cláusula FROM. O nome da tabela não é mais visível como qualificador para nome-da-coluna após a tabela ter recebido um aliás pelo nome da correlação.
| Constante | A maioria dos tipos de dado nativos normalmente possuem constantes associadas aos mesmos (conforme mostrado em Tipos de dado).
| NULL Permitido nas expressões CAST, na lista de valores do INSERT, e na cláusula SET do UPDATE. Utilizado na expressão CAST o nulo recebe um tipo de dado específico. | NULL é uma constante sem tipo que representa um valor desconhecido.
| Parâmetro dinâmico Permitido em qualquer lugar na expressão onde o tipo de dado pode ser facilmente deduzido. Consulte Parâmetros dinâmicos. | Parâmetro dinâmico é o parâmetro de uma instrução SQL para o qual não é especificado valor quando a instrução é criada. Em vez disto, a instrução possui um ponto de interrogação (?) marcando a posição de cada um dos parâmetros dinâmicos. Consulte Parâmetros dinâmicos. Os parâmetros dinâmicos são permitidos apenas em instruções preparadas. Devem ser especificados valores para os mesmos antes da instrução preparada ser executada. Os valores especificados devem corresponder aos tipos esperados.
| Expressão CAST | Permite especificar o tipo de dado de NULL ou de um parâmetro dinâmico, ou converter um valor para outro tipo de dado. Consulte CAST.
| Subconsulta escalar | Uma subconsulta que retorna uma única linha com uma única coluna. Consulte SubconsultaEscalar.
| Subconsulta tabela Permitida como ExpressãoTabela na cláusula FROM, e com EXISTS, IN e comparações quantificadas. | Uma subconsulta que retorna mais de uma coluna e mais de uma linha. Consulte SubconsultaTabela.
| Expressão condicional | A expressão condicional escolhe a expressão a ser avaliada baseado em um teste booleano.
| Expressões booleanas | Expressões que resultam em valores booleanos. A maioria das expressões gerais podem resultar em valores booleanos. Geralmente as expressões booleanas usadas na cláusula WHERE são feitas de operandos operados por operadores SQL. Consulte Operadores booleanos SQL.
| Expressões numéricas | Expressões que resultam em valores numéricos. A maioria das expressões gerais podem resultar em valores numéricos. Os valores numéricos possuem um dos seguintes tipos de dado: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, DECIMAL.
| Expressões +, -, *, /, e + - unários | + -, *, /, e + - unários Avaliam a operação matemática esperada nos operandos. Se os dois operandos forem do mesmo tipo, o tipo do resultado não será promovido, e portanto o operador de divisão em operandos inteiros resulta em um inteiro que é o truncamento do resultado numérico real. Quando são misturados tipos de dado diferentes, estes são promovidos conforme descrito em Tipos de dado. O + unário é um não-operador (ou seja, +4 é o mesmo que 4). O - unário é o mesmo que multiplicar o valor por -1, mudando efetivamente o sinal.
| AVG | Retorna a média de um conjunto de valores numéricos. AVG
| SUM | Retorna a soma de um conjunto de valores numéricos. SUM
| LENGTH | Retorna o número de caracteres em uma cadeia de caracteres ou de bits. Consulte LENGTH.
| LOWER | Consulte LCASE ou LOWER.
| COUNT | Retorna o contagem de um conjunto de valores. Consulte COUNT e COUNT(*).
| Expressões de caractere | Expressões que resultam em um valor CHAR ou VARCHAR. A maioria das expressões gerais podem resultar em um valor CHAR ou VARCHAR.
| Um valor CHAR ou VARCHAR que utiliza curingas. Usadas no padrão do LIKE. | Os caracteres curinga % e _ transformam a cadeia de caracteres em um padrão com relação ao qual o operador LIKE pode procurar por uma correspondência.
| Expressão de concatenação | Em uma operação de concatenação, o operador de concatenação, "||", concatena seu operando à direita ao seu operando à esquerda. Opera em cadeias de caracteres e de bits. Consulte Concatenação.
| Funções de cadeia nativas | As funções de cadeia nativas atuam em uma cadeia e retornam uma cadeia. Consulte LTRIM, LCASE ou LOWER, RTRIM, SUBSTR e UCASE ou UPPER
| Funções USER | As funções USER retornam informações sobre o usuário corrente na forma de uma cadeia de caracteres. Consulte CURRENT_USER, SESSION_USER, e USER
| Expressões de data e hora | Uma expressão data/hora resulta em um valor do tipo DATE, TIME, ou TIMESTAMP. A maioria das expressões gerais podem resultar em um valor data/hora.
| CURRENT_DATE | Retorna a data corrente. Consulte CURRENT_DATE.
| CURRENT_TIME | Retorna a hora corrente. Consulte CURRENT_TIME.
| CURRENT_TIMESTAMP | Retorna o carimbo do tempo corrente. Consulte CURRENT_TIMESTAMP.

- Precedência das expressões
- Expressão booleana
- Parâmetros dinâmicos

Tópico pai: Referência da linguagem SQL
Conceitos relacionados
Identificadores SQL
Instruções
Funções do sistema nativas
Procedimentos do sistema nativos
Tipos de dado
Referências relacionadas
Letras maiúsculas e caracteres especiais
Funções nativas