Ausdrücke (Transact-SQL)Expressions (Transact-SQL)

GILT FÜR: jaSQL Server (ab 2008) jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Eine Kombination aus Symbolen und Operatoren, die SQL Server-Datenbank-EngineSQL Server Database Engine auswertet, um einen einzelnen Datenwert zu erhalten.Is a combination of symbols and operators that the SQL Server-Datenbank-EngineSQL Server Database Engine evaluates to obtain a single data value. Einfache Ausdrücke können aus einzelnen Konstanten, Variablen, Spalten oder Skalarfunktionen bestehen.Simple expressions can be a single constant, variable, column, or scalar function. Mithilfe von Operatoren können zwei oder mehrere einfache Ausdrücke zu einem komplexen Ausdruck verknüpft werden.Operators can be used to join two or more simple expressions into a complex expression.

Themenlinksymbol Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- 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 ]  
  

ArgumenteArguments

BegriffTerm DefinitionDefinition
constantconstant Ein Symbol, das einen einzelnen bestimmten Datenwert darstellt.Is a symbol that represents a single, specific data value. Weitere Informationen finden Sie unter Konstanten (Transact-SQL).For more information, see Constants (Transact-SQL).
scalar_functionscalar_function Eine Einheit der Transact-SQLTransact-SQL-Syntax, die einen bestimmten Dienst bereitstellt und einen einzelnen Wert zurückgibt.Is a unit of Transact-SQLTransact-SQL syntax that provides a specific service and returns a single value. Bei scalar_function kann es sich um integrierte Skalarfunktionen wie die SUM-, GETDATE- oder CAST-Funktionen oder um benutzerdefinierte Skalarfunktionen handeln.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. ]] Der Name oder Alias einer Tabelle.Is the name or alias of a table.
columncolumn Der Name einer Spalte.Is the name of a column. Nur der Name der Spalte ist in einem Ausdruck zulässig.Only the name of the column is allowed in an expression.
variablevariable Der Name einer Variablen oder eines Parameters.Is the name of a variable, or parameter. Weitere Informationen finden Sie unter DECLARE @local_variable (Transact-SQL).For more information, see DECLARE @local_variable (Transact-SQL).
( expression )( expression ) Ein beliebiger gültiger Ausdruck, wie er in diesem Thema definiert ist.Is any valid expression as defined in this topic. Die Klammern sind gruppierende Operatoren, die sicherstellen, dass alle Operatoren in dem in Klammern stehenden Ausdruck ausgewertet werden, bevor der resultierende Ausdruck mit einem weiteren Ausdruck kombiniert wird.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 ) Eine Unterabfrage, die einen Wert zurückgibt.Is a subquery that returns one value. Beispiel:For example:

SELECT MAX(UnitPrice)

FROM Products
{ unary_operator }{ unary_operator } Unäre Operatoren können nur auf Ausdrücke angewendet werden, die zu einem der Datentypen in der numerischen Datentypkategorie ausgewertet werden.Unary operators can be applied only to expressions that evaluate to any one of the data types of the numeric data type category. Ein Operator, der nur einen numerischen Operanden besitzt:Is an operator that has only one numeric operand:

+ zeigt eine positive Zahl an.+ indicates a positive number.

- zeigt eine negative Zahl an.- indicates a negative number.

~ zeigt den Einserkomplementoperator an.~ indicates the one's complement operator.
{ binary_operator }{ binary_operator } Ein Operator, der die Art und Weise definiert, in der zwei Ausdrücke kombiniert werden, um ein einzelnes Resultat zu liefern.Is an operator that defines the way two expressions are combined to yield a single result. binary_operator kann ein arithmetischer Operator, der Zuweisungsoperator (=), ein bitweiser Operator, ein Vergleichsoperator, ein logischer Operator, der Operator für Zeichenfolgenverkettung (+) oder ein unärer Operator sein.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. Weitere Informationen zu Operatoren finden Sie unter Operatoren (Transact-SQL).For more information about operators, see Operators (Transact-SQL).
ranking_windowed_functionranking_windowed_function Eine beliebige Transact-SQLTransact-SQL-Rangfolgefunktion.Is any Transact-SQLTransact-SQL ranking function. Weitere Informationen finden Sie unter Rangfolgefunktionen (Transact-SQL).For more information, see Ranking Functions (Transact-SQL).
aggregate_windowed_functionaggregate_windowed_function Eine beliebige Transact-SQLTransact-SQL-Aggregatfunktion mit der OVER-Klausel.Is any Transact-SQLTransact-SQL aggregate function with the OVER clause. Weitere Informationen finden Sie unter OVER-Klausel (Transact-SQL).For more information, see OVER Clause (Transact-SQL).

Ergebnisse von AusdrückenExpression Results

Bei einfachen Ausdrücken, die aus einer einzelnen Konstante, Variablen, Skalarfunktion oder einem Spaltennamen bestehen, entsprechen Datentyp, Sortierung, Genauigkeit, Anzahl der Dezimalstellen und Wert des Ausdrucks den jeweiligen Eigenschaften (Datentyp, Sortierung, Genauigkeit usw.) des Elements, auf das verwiesen wird.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.

Werden zwei Ausdrücke mithilfe von Vergleichsoperatoren oder logischen Operatoren kombiniert, besitzt das Ergebnis einen booleschen Datentyp und nimmt einen der folgenden Werte an: TRUE, FALSE oder 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. Weitere Informationen zu booleschen Datentypen finden Sie unter Vergleichsoperatoren (Transact-SQL).For more information about Boolean data types, see Comparison Operators (Transact-SQL).

Werden zwei Ausdrücke mithilfe von arithmetischen Operatoren, bitweisen Operatoren oder Zeichenfolgenoperatoren kombiniert, bestimmt der Operator den resultierenden Datentyp.When two expressions are combined by using arithmetic, bitwise, or string operators, the operator determines the resulting data type.

Komplexe Ausdrücke, die aus vielen Symbolen und Operatoren bestehen, werden zu einem Ergebnis mit genau einem Wert ausgewertet.Complex expressions made up of many symbols and operators evaluate to a single-valued result. Der Datentyp, die Sortierung, die Genauigkeit und der Wert des resultierenden Ausdrucks werden bestimmt, indem immer jeweils zwei Teilausdrücke kombiniert und ausgewertet werden, bis ein Endergebnis erreicht ist.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. Die Reihenfolge, in der die Ausdrücke kombiniert werden, ist durch die Rangfolge der Operatoren im Ausdruck definiert.The sequence in which the expressions are combined is defined by the precedence of the operators in the expression.

RemarksRemarks

Zwei Ausdrücke können mit einem Operator kombiniert werden, wenn die Datentypen beider Ausdrücke vom Operator unterstützt werden und mindestens eine der folgenden Bedingungen erfüllt ist: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:

  • Die Ausdrücke besitzen den gleichen Datentyp.The expressions have the same data type.

  • Der Datentyp niedrigerer Rangfolge kann implizit in den Datentyp höherer Rangfolge konvertiert werden.The data type with the lower precedence can be implicitly converted to the data type with the higher data type precedence.

Falls die Ausdrücke diese Bedingungen nicht erfüllen, kann mit den Funktionen CAST oder CONVERT der Datentyp niedrigerer Rangfolge explizit in den Datentyp höherer Rangfolge konvertiert werden oder in einen dazwischen liegenden Datentyp, der implizit in den Datentyp höherer Rangfolge konvertiert werden kann.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.

Falls weder die implizite noch die explizite Konvertierung unterstützt wird, können die beiden Ausdrücke nicht kombiniert werden.If there is no supported implicit or explicit conversion, the two expressions cannot be combined.

Die Sortierung eines Ausdrucks, der zu einer Zeichenfolge ausgewertet wird, wird entsprechend den Regeln zur Sortierungsrangfolge festgelegt.The collation of any expression that evaluates to a character string is set by following the rules of collation precedence. Weitere Informationen finden Sie unter Rangfolge von Sortierungen (Transact-SQL).For more information, see Collation Precedence (Transact-SQL).

In einer Programmiersprache wie beispielsweise C oder MicrosoftMicrosoft Visual BasicVisual Basic wird ein Ausdruck immer zu einem einzelnen Ergebnis ausgewertet.In a programming language such as C or MicrosoftMicrosoft Visual BasicVisual Basic, an expression always evaluates to a single result. Für Ausdrücke in einer Transact-SQLTransact-SQL-SELECT-Liste gilt eine Abwandlung dieser Regel: Der Ausdruck wird für jede Zeile im Resultset einzeln ausgewertet.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. Ein einzelner Ausdruck kann für jede Zeile im Resultset einen anderen Wert annehmen, aber jede Zeile hat nur genau einen Wert für den Ausdruck.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. In der folgenden SELECT-Anweisung sind beispielsweise sowohl der Verweis auf ProductID als auch der Term 1+2 in der Auswahlliste Ausdrücke: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  

Der Ausdruck 1+2 wird für jede Zeile des Resultsets zu 3 ausgewertet.The expression 1+2 evaluates to 3 in each row in the result set. Obwohl der Ausdruck ProductID für jede Zeile des Resultsets einen eindeutigen Wert erzeugt, besitzt jede Zeile nur genau einen Wert für ProductID.Although the expression ProductID generates a unique value in each result set row, each row only has one value for ProductID.

Weitere InformationenSee Also

AT TIME ZONE (Transact-SQL) AT TIME ZONE (Transact-SQL)
CASE (Transact-SQL) CASE (Transact-SQL)
CAST und CONVERT (Transact-SQL) CAST and CONVERT (Transact-SQL)
COALESCE (Transact-SQL) COALESCE (Transact-SQL)
Datentypkonvertierung (Datenbank-Engine) Data Type Conversion (Database Engine)
Rangfolge der Datentypen (Transact-SQL) Data Type Precedence (Transact-SQL)
Datentypen (Transact-SQL) Data Types (Transact-SQL)
Integrierte Funktionen (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)