Condividi tramite


Espressioni (Motore di database)

Un'espressione è una combinazione di identificatori, valori e operatori che può essere valutata in SQL Server per ottenere un risultato. È possibile utilizzare i risultati in diversi contesti di accesso o modifica di dati. Le espressioni possono essere utilizzate, ad esempio, come parte dei dati da recuperare in una query, oppure come condizione per la ricerca di dati che soddisfino una serie di criteri.

Un'espressione può essere rappresentata dagli elementi seguenti:

  • Costante

  • Funzione

  • Nome colonna

  • Variabile

  • Subquery

  • CASE, NULLIF o COALESCE

Un'espressione può essere formata da combinazioni di tali elementi uniti da operatori.

Nell'istruzione SELECT seguente, per ogni riga del set di risultati SQL Server può risolvere LastName in un unico valore. L'istruzione, pertanto, è un'espressione.

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

Un'espressione può essere inoltre un calcolo, ad esempio (price * 1.5) o (price + sales_tax).

All'interno di un'espressione i valori di tipo carattere e datetime devono essere racchiusi tra virgolette singole. Nell'istruzione SELECT seguente il valore letterale B% utilizzato come modello per la clausola LIKE deve essere racchiuso tra virgolette singole:

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

Nell'istruzione SELECT seguente il valore della data è racchiuso tra virgolette:

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

Nella query riportata nell'esempio seguente vengono utilizzate più espressioni. For example, Name, SUBSTRING, ProductNumber, ListPrice, and 1.5 are all 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;