Expressions (moteur de base de données)

Une expression est une combinaison d'identificateurs, de valeurs et d'opérateurs qui peut être évaluée par SQL Server afin d'obtenir un résultat. Les données peuvent être utilisées à différents endroits lorsque vous y accéder ou les modifier. Vous pouvez, par exemple, utiliser des expressions comme partie des données à extraire dans une requête, ou en tant que condition de recherche de données sur un ensemble de critères.

Une expression peut prendre l'une des valeurs suivantes :

  • Constante

  • Fonction

  • Nom de colonne

  • Variable

  • Sous-requête

  • CASE, NULLIF ou COALESCE

Une expression peut également être une combinaison de ces entités associées par des opérateurs.

Dans l'instruction SELECT suivante, pour chaque ligne du jeu de résultats, SQL Server peut résoudre LastName en une seule valeur. Par conséquent, il s'agit d'une expression.

USE AdventureWorks;
GO
SELECT LastName 
FROM AdventureWorks.Person.Contact;

Une expression peut également être un calcul, tel que (price * 1.5) ou (price + sales_tax).

Dans une expression, placez les valeurs caractères et datetime entre des guillemets simples. Dans l'instruction SELECT suivante, le caractère littéral B% utilisé comme modèle pour la clause LIKE doit se trouver entre des guillemets simples :

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

Dans l'instruction SELECT suivante, la valeur date est placée entre guillemets.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.HireDate 
FROM Person.Contact c JOIN HumanResources.Employee e 
ON c.ContactID = e.EmployeeID
WHERE e.HireDate = 'July 1, 2003';
GO

Dans l'exemple suivant, plusieurs expressions sont utilisées dans la requête. Par exemple, Name, SUBSTRING, ProductNumber, ListPrice et 1.5 sont toutes des expressions.

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