Ausdrücke (Datenbankmodul)

Ein Ausdruck ist eine Kombination aus Bezeichnern, Werten und Operatoren, die SQL Server auswerten kann, um ein Ergebnis zu erhalten. Die Daten können beim Zugreifen auf oder Ändern von Daten an verschiedenen Stellen verwendet werden. Ausdrücke können z. B. als Teil der abzurufenden Daten (in einer Abfrage) oder als Suchbedingung bei der Suche nach Daten, die bestimmte Kriterien erfüllen, verwendet werden.

Bei einem Ausdruck kann es sich um eines folgenden Elemente handeln:

  • Konstante

  • Funktion

  • Spaltenname

  • Variable

  • Unterabfrage

  • CASE, NULLIF oder COALESCE

Ein Ausdruck kann auch aus Kombinationen dieser Entitäten erstellt werden, die durch Operatoren verbunden sind.

In der folgenden SELECT-Anweisung kann SQL ServerLastName für jede Zeile des Resultsets in einen einzelnen Wert auflösen. Daher handelt es sich um einen Ausdruck.

USE AdventureWorks2008R2;
GO
SELECT LastName 
FROM Person.Person;

Bei einem Ausdruck kann es sich auch um eine Berechnung handeln, wie z. B. (price * 1.5) oder (price + sales_tax).

In einem Ausdruck müssen Zeichen und Werte vom Typ datetime in einfache Anführungszeichen eingeschlossen werden. In der folgenden SELECT-Anweisung wird das Zeichenliteral B%, das als Muster für die LIKE-Klausel verwendet wird, in einfache Anführungszeichen eingeschlossen:

USE AdventureWorks2008R2;
GO
SELECT LastName, FirstName 
FROM Person.Person 
WHERE LastName LIKE 'Bai%';
GO

In der folgenden SELECT-Anweisung wird der Datumswert in Anführungszeichen eingeschlossen.

USE AdventureWorks2008R2;
GO
SELECT c.FirstName, c.LastName, e.HireDate 
FROM Person.Person c JOIN HumanResources.Employee e 
ON c.BusinessEntityID = e.BusinessEntityID
WHERE e.HireDate = 'July 1, 2007';
GO

Im folgenden Beispiel werden mehrere Ausdrücke in der Abfrage verwendet. So handelt es sich z. B. bei Name, SUBSTRING, ProductNumber, ListPrice und 1.5 um Ausdrücke.

USE AdventureWorks2008R2;
GO
SELECT Name, 
   SUBSTRING('This is a long string', 1, 5) AS SampleText, 
   ProductNumber, 
   ListPrice * 1.5 AS NewPrice
FROM Production.Product;