Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Uma combinação de símbolos e operadores que o Mecanismo de Banco de Dados do SQL Server avalia para obter um único valor de dados. Expressões simples podem ser uma única constante, variável, coluna ou função escalar. Os operadores podem ser usados para unir duas ou mais expressões simples em uma expressão complexa.
Transact-SQL convenções de sintaxe
Syntax
Sintaxe do SQL Server e do Banco de Dados SQL do Azure.
{ constant | scalar_function | [ table_name. ] column | variable
| ( expression ) | ( scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression
| ranking_windowed_function | aggregate_windowed_function
}
Sintaxe para o Azure Synapse Analytics e o Parallel Data Warehouse.
-- Expression in a SELECT statement
<expression> ::=
{
constant
| scalar_function
| column
| variable
| ( expression )
| { unary_operator } expression
| expression { binary_operator } expression
}
[ COLLATE Windows_collation_name ]
-- Scalar Expression in a DECLARE , SET , IF...ELSE , or WHILE statement
<scalar_expression> ::=
{
constant
| scalar_function
| variable
| ( expression )
| (scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression
}
[ COLLATE [ Windows_collation_name ] ]
Arguments
constante
Um símbolo que representa um único valor de dados específico. Para obter mais informações, consulte Constantes.
scalar_function
Uma unidade de sintaxe Transact-SQL que fornece um serviço específico e retorna um único valor.
scalar_function podem ser funções escalares integradas, como as SUMfunções , GETDATE()ou funções, ou CAST funções escalares definidas pelo usuário.
table_name
O nome ou alias de uma tabela.
column
O nome de uma coluna. Somente o nome da coluna é permitido em uma expressão.
variable
O nome de uma variável ou parâmetro. Para obter mais informações, consulte DECLARE @local_variable.
expression
Qualquer expressão válida, conforme definido neste artigo. Os parênteses são operadores de agrupamento que garantem que todos os operadores na expressão dentro dos parênteses sejam avaliados antes que a expressão resultante seja combinada com outra.
scalar_subquery
Uma subconsulta que retorna um valor. Por exemplo:
SELECT MAX(UnitPrice)
FROM Products;
unary_operator
Os operadores unários podem ser aplicados somente a expressões que avaliam qualquer um dos tipos de dados da categoria de tipo de dados numéricos. É um operador que tem apenas um operando numérico:
-
+indica um número positivo -
-indica um número negativo -
~indica o operador do complemento
binary_operator
Um operador que define a forma como duas expressões são combinadas para produzir um único resultado.
binary_operator pode ser um operador aritmético, o operador de atribuição (=), um operador bitwise, um operador de comparação, um operador lógico, o operador de concatenação de cadeia (+) ou um operador unário. Para obter mais informações sobre operadores, consulte Operadores.
ranking_windowed_function
Qualquer função de classificação Transact-SQL. Para obter mais informações, consulte Funções de classificação.
aggregate_windowed_function
Qualquer Transact-SQL função agregada com a cláusula OVER. Para obter mais informações, consulte Cláusula SELECT - OVER.
Resultados de expressão
Para uma expressão simples composta por uma única constante, variável, função escalar ou nome de coluna: o tipo de dados, agrupamento, precisão, escala e valor da expressão é o tipo de dados, agrupamento, precisão, escala e valor do elemento referenciado.
Quando duas expressões são combinadas usando comparação ou operadores lógicos, o tipo de dados resultante é booleano e o valor é: TRUE, FALSE, ou UNKNOWN. Para obter mais informações sobre tipos de dados booleanos, consulte Operadores de comparação.
Quando duas expressões são combinadas usando operadores aritméticos, bitwise ou string, o operador determina o tipo de dados resultante.
Expressões complexas compostas por muitos símbolos e operadores avaliam até um resultado de valor único. O tipo de dados, o agrupamento, a precisão e o valor da expressão resultante são determinados pela combinação das expressões dos componentes, duas de cada vez, até que um resultado final seja alcançado. A sequência na qual as expressões são combinadas é definida pela precedência dos operadores na expressão.
Remarks
Duas expressões podem ser combinadas por um operador se ambas tiverem tipos de dados suportados pelo operador, e pelo menos uma destas condições for verdadeira:
As expressões têm o mesmo tipo de dados.
O tipo de dados com a menor precedência pode ser implicitamente convertido para o tipo de dados com a precedência de tipo de dados mais alta.
Se as expressões não atenderem a essas condições, as CAST funções ou CONVERT podem ser usadas. Use CAST ou CONVERT para converter explicitamente o tipo de dados com a precedência inferior para o tipo de dados com a precedência mais alta ou para um tipo de dados intermediário que possa ser implicitamente convertido para o tipo de dados com a precedência mais alta.
Se não houver conversão implícita ou explícita suportada, as duas expressões não poderão ser combinadas.
O agrupamento de qualquer expressão avaliada como uma cadeia de caracteres é definido seguindo as regras de precedência de agrupamento. Para obter mais informações, consulte Precedência de agrupamento.
Em uma linguagem de programação como C ou Microsoft Visual Basic, uma expressão sempre é avaliada como um único resultado. As expressões em uma lista de seleção de Transact-SQL seguem uma variação nesta regra: A expressão é avaliada individualmente para cada linha do conjunto de resultados. Uma única expressão pode ter um valor diferente em cada linha do conjunto de resultados, mas cada linha tem apenas um valor para a expressão. Por exemplo, na instrução a seguir SELECT , tanto a referência quanto ProductID o termo 1+2 na lista de seleção são expressões:
USE AdventureWorks2022;
GO
SELECT ProductID, 1 + 2
FROM Production.Product;
GO
A expressão 1+2 é avaliada como 3 em cada linha do conjunto de resultados. Embora a expressão ProductID gere um valor exclusivo em cada linha do conjunto de resultados, cada linha tem apenas um valor para ProductID.
- O Azure Synapse Analytics aloca uma quantidade máxima fixa de memória para cada thread para que nenhum thread possa usar toda a memória. Parte dessa memória é usada para armazenar expressões de consultas. Se uma consulta tiver muitas expressões e sua memória necessária exceder o limite interno, o mecanismo não a executará. Para evitar esse problema, os usuários podem alterar a consulta em várias consultas com menor número de expressões em cada uma. Por exemplo, você tem uma consulta com uma longa lista de expressões na cláusula WHERE:
DELETE
FROM dbo.MyTable
WHERE (c1 = '0000001' AND c2 = 'A000001')
OR (c1 = '0000002' AND c2 = 'A000002')
OR (c1 = '0000003' AND c2 = 'A000003')
/* ... additional, similar expressions omitted for simplicity */
Altere esta consulta para:
DELETE FROM dbo.MyTable WHERE (c1 = '0000001' AND c2 = 'A000001');
DELETE FROM dbo.MyTable WHERE (c1 = '0000002' AND c2 = 'A000002');
DELETE FROM dbo.MyTable WHERE (c1 = '0000003' AND c2 = 'A000003');
/* ... refactored, individual DELETE statements omitted for simplicity */
Conteúdo relacionado
- NO FUSO HORÁRIO (Transact-SQL)
- CASO (Transact-SQL)
- CAST e CONVERT (Transact-SQL)
- COALESCE (Transact-SQL)
- Conversão de tipo de dados (Mecanismo de Banco de Dados)
- Precedência do tipo de dados (Transact-SQL)
- Tipos de dados (Transact-SQL)
- Quais são as funções do banco de dados SQL?
- COMO (Transact-SQL)
- NULLIF (Transact-SQL)
- SELECIONAR (Transact-SQL)
- ONDE (Transact-SQL)