Expressions (Transact-SQL)Expressions (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data Warehouse ouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Combinaison de symboles et d'opérateurs que le Moteur de base de données SQL ServerSQL Server Database Engine évalue pour obtenir une seule valeur.Is a combination of symbols and operators that the Moteur de base de données SQL ServerSQL Server Database Engine evaluates to obtain a single data value. Les expressions simples peuvent être une seule constante, variable, colonne ou fonction scalaire.Simple expressions can be a single constant, variable, column, or scalar function. Les opérateurs peuvent être utilisés pour associer plusieurs expressions simples en une expression complexe.Operators can be used to join two or more simple expressions into a complex expression.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

-- Syntax for SQL Server and Azure SQL Database  

{ constant | scalar_function | [ table_name. ] column | variable   
    | ( expression ) | ( scalar_subquery )   
    | { unary_operator } expression   
    | expression { binary_operator } expression   
    | ranking_windowed_function | aggregate_windowed_function  
}  
-- Syntax for Azure SQL Data Warehouse and 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 ]  

ArgumentsArguments

TermeTerm DéfinitionDefinition
constantconstant Symbole représentant une valeur de données spécifique et unique.Is a symbol that represents a single, specific data value. Pour plus d’informations, consultez constantes ( Transact-SQL ) .For more information, see Constants (Transact-SQL).
scalar_functionscalar_function Est une unité de Transact-SQLTransact-SQL syntaxe qui fournit un service spécifique et retourne une valeur unique.Is a unit of Transact-SQLTransact-SQL syntax that provides a specific service and returns a single value. scalar_function peuvent être des fonctions scalaires intégrées, telles que les fonctions SUM, GETDATE ou CAST, ou des fonctions scalaires définies par l’utilisateur.scalar_function can be built-in scalar functions, such as the SUM, GETDATE, or CAST functions, or scalar user-defined functions.
[ table_name. ][ table_name. ] Nom ou alias d'une table.Is the name or alias of a table.
columncolumn Est le nom d’une colonne.Is the name of a column. Seul le nom de la colonne est autorisé dans une expression.Only the name of the column is allowed in an expression.
variablevariable Nom d'une variable ou d'un paramètre.Is the name of a variable, or parameter. Pour plus d’informations, consultez DECLARE @local_variable (Transact-SQL).For more information, see DECLARE @local_variable (Transact-SQL).
( expression )( expression ) Toute expression valide définie dans cette rubrique.Is any valid expression as defined in this topic. Les parenthèses regroupent des opérateurs et garantissent que tous les opérateurs de l'expression entre parenthèses sont traités avant que l'expression qui en résulte ne soit combinée avec une autre.The parentheses are grouping operators that make sure that all the operators in the expression within the parentheses are evaluated before the resulting expression is combined with another.
( scalar_subquery )( scalar_subquery ) Sous-requête qui renvoie une valeur.Is a subquery that returns one value. Par exemple :For example:

SELECT MAX(UnitPrice)

FROM Products
{ unary_operator }{ unary_operator } Les opérateurs unaires ne s'appliquent qu'à des expressions qui évaluent un type de données de la catégorie des types de données numériques.Unary operators can be applied only to expressions that evaluate to any one of the data types of the numeric data type category. Opérateur qui n'a qu'un seul opérande :Is an operator that has only one numeric operand:

+ indique un nombre positif ;+ indicates a positive number.

- indique un nombre négatif ;- indicates a negative number.

~ indique l'opérateur de complément.~ indicates the one's complement operator.
{ binary_operator }{ binary_operator } Opérateur qui définit la manière de combiner deux expressions pour parvenir à un résultat unique.Is an operator that defines the way two expressions are combined to yield a single result. Opérateur_binaire peut être un opérateur arithmétique, l’opérateur d’assignation (=), un opérateur au niveau du bit, un opérateur de comparaison, un opérateur logique, l’opérateur de concaténation de chaîne (+) ou un opérateur unaire.binary_operator can be an arithmetic operator, the assignment operator (=), a bitwise operator, a comparison operator, a logical operator, the string concatenation operator (+), or a unary operator. Pour plus d’informations sur les opérateurs, consultez opérateurs ( Transact-SQL ) .For more information about operators, see Operators (Transact-SQL).
ranking_windowed_functionranking_windowed_function Toute fonction de classement Transact-SQLTransact-SQL.Is any Transact-SQLTransact-SQL ranking function. Pour plus d’informations, consultez fonctions de classement ( Transact-SQL ) .For more information, see Ranking Functions (Transact-SQL).
aggregate_windowed_functionaggregate_windowed_function Toute fonction d'agrégation Transact-SQLTransact-SQL utilisée avec la clause OVER.Is any Transact-SQLTransact-SQL aggregate function with the OVER clause. Pour plus d’informations, consultez la Clause OVER ( Transact-SQL ) .For more information, see OVER Clause (Transact-SQL).

Résultats des expressionsExpression Results

Pour une expression simple composée d'une seule constante ou variable ou d'une seule fonction scalaire ou nom de colonne : les type de données, classement, précision, échelle et valeur de l'expression sont ceux de l'élément référencé.For a simple expression made up of a single constant, variable, scalar function, or column name: the data type, collation, precision, scale, and value of the expression is the data type, collation, precision, scale, and value of the referenced element.

Lorsque deux expressions sont combinées avec des opérateurs logiques ou de comparaison, il en résulte un type de données booléen ayant l'une des trois valeurs suivantes : TRUE, FALSE ou UNKNOWN.When two expressions are combined by using comparison or logical operators, the resulting data type is Boolean and the value is one of the following: TRUE, FALSE, or UNKNOWN. Pour plus d’informations sur les types de données booléen, consultez opérateurs de comparaison ( Transact-SQL ) .For more information about Boolean data types, see Comparison Operators (Transact-SQL).

Lorsque deux expressions sont combinées avec des opérateurs arithmétiques, de niveau bit ou de chaîne de caractères, l'opérateur détermine le type de donnée du résultat.When two expressions are combined by using arithmetic, bitwise, or string operators, the operator determines the resulting data type.

Les expressions complexes constituées de nombreux symboles et opérateurs conduisent à un résultat à valeur unique.Complex expressions made up of many symbols and operators evaluate to a single-valued result. Le type de données, le classement, la précision et la valeur de l'expression qui en résulte sont déterminés en combinant deux par deux les expressions, et ce jusqu'à l'obtention du résultat final.The data type, collation, precision, and value of the resulting expression is determined by combining the component expressions, two at a time, until a final result is reached. La séquence selon laquelle les expressions sont combinées est définie par le degré de priorité des opérateurs dans l'expression.The sequence in which the expressions are combined is defined by the precedence of the operators in the expression.

NotesRemarks

Un opérateur peut combiner deux expressions si elles ont toutes deux un type de données pris en charge par l'opérateur et si au moins l'une des conditions suivantes est vraie :Two expressions can be combined by an operator if they both have data types supported by the operator and at least one of these conditions is true:

  • les expressions ont le même type de données ;The expressions have the same data type.

  • le type de données ayant le degré de priorité le moins élevé peut être implicitement converti dans le type de données ayant le degré de priorité le plus élevé ;The data type with the lower precedence can be implicitly converted to the data type with the higher data type precedence.

    Si les expressions ne respectent pas ces conditions, les fonctions CAST ou CONVERT peuvent servir à convertir explicitement le type de données ayant le degré de priorité le moins élevé, soit dans le type de données ayant le degré de priorité le plus élevé, soit dans un type de données intermédiaire qui peut être implicitement converti dans le type de données ayant le degré de priorité le plus élevé.If the expressions do not meet these conditions, the CAST or CONVERT functions can be used to explicitly convert the data type with the lower precedence to either the data type with the higher precedence or to an intermediate data type that can be implicitly converted to the data type with the higher precedence.

    Si aucune conversion implicite ou explicite n'est prise en charge, les deux expressions ne peuvent pas être combinées.If there is no supported implicit or explicit conversion, the two expressions cannot be combined.

    Le classement de toute expression qui s'évalue à une chaîne de caractères est défini d'après les règles de priorité des classements.The collation of any expression that evaluates to a character string is set by following the rules of collation precedence. Pour plus d’informations, consultez priorité de classement ( Transact-SQL ) .For more information, see Collation Precedence (Transact-SQL).

    Dans un langage de programmation tels que C ou MicrosoftMicrosoft Visual BasicVisual Basic, une expression s’évalue toujours à un résultat unique.In a programming language such as C or MicrosoftMicrosoft Visual BasicVisual Basic, an expression always evaluates to a single result. Cette règle varie pour les expressions dans une liste de sélection Transact-SQLTransact-SQL : l'expression est évaluée individuellement pour chaque ligne dans le jeu de résultats.Expressions in a Transact-SQLTransact-SQL select list follow a variation on this rule: The expression is evaluated individually for each row in the result set. Une même expression peut avoir une valeur différente dans chaque ligne du jeu de résultats, mais chaque ligne n'a qu'une seule valeur pour l'expression.A single expression may have a different value in each row of the result set, but each row has only one value for the expression. Par exemple, dans l'instruction SELECT suivante, ProductID et 1+2 dans la liste de sélection sont tous deux des expressions :For example, in the following SELECT statement both the reference to ProductID and the term 1+2 in the select list are expressions:

USE AdventureWorks2012;  
GO  
SELECT ProductID, 1+2  
FROM Production.Product;  
GO  

L'expression 1+2 s'évalue à 3 dans chaque ligne du jeu de résultats.The expression 1+2 evaluates to 3 in each row in the result set. Bien que l'expression ProductID génère une valeur différente dans chaque ligne du jeu de résultats, chaque ligne n'a qu'une seule valeur pour ProductID.Although the expression ProductID generates a unique value in each result set row, each row only has one value for ProductID.

Voir aussiSee Also

AT TIME ZONE (Transact-SQL) AT TIME ZONE (Transact-SQL)
CASE (Transact-SQL) CASE (Transact-SQL)
CAST et CONVERT (Transact-SQL) CAST and CONVERT (Transact-SQL)
COALESCE (Transact-SQL) COALESCE (Transact-SQL)
Conversion de Type de données ( moteur de base de données ) Data Type Conversion (Database Engine)
Priorité des types de données ( Transact-SQL ) Data Type Precedence (Transact-SQL)
Types de données (Transact-SQL) Data Types (Transact-SQL)
Fonctions intégrées (Transact-SQL) Built-in Functions (Transact-SQL)
LIKE (Transact-SQL) LIKE (Transact-SQL)
NULLIF (Transact-SQL) NULLIF (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
WHERE (Transact-SQL)WHERE (Transact-SQL)