Condividi tramite


Funzioni per le espressioni

Aggiornamento: novembre 2007

Le funzioni sono operazioni archiviate sempre disponibili. Nei sistemi di gestione di database sono disponibili funzioni di base, ma è comunque possibile creare e definire personalmente le funzioni desiderate.

È possibile chiamare numerose funzioni quando si sta generando un'espressione, fra le quali:

  • Funzioni stringa (caratteri).

  • Funzioni data.

  • Funzioni matematiche.

  • Funzioni di sistema.

  • Altre funzioni, ad esempio quelle per convertire dati da un tipo a un altro.

  • Funzioni definite dall'utente.

In generale, se si conoscono le funzioni disponibili nel database in uso, sarà possibile utilizzare i nomi delle funzioni e la sintassi supportati da tale database. In alcuni casi, ad esempio quando si stanno creando viste, stored procedure o trigger, sarà necessario utilizzare la sintassi e i nomi di funzione specifici del database in uso.

In Progettazione query e Progettazione viste l'utilizzo delle funzioni risulta facilitato, in quanto vengono effettuate automaticamente le seguenti operazioni:

  • Vengono inserite correttamente le virgolette negli argomenti delle funzioni.

  • Vengono verificati i tipi di dati degli argomenti.

  • Vengono verificati i tipi di dati dei valori restituiti.

Per ulteriori informazioni sulle funzioni supportate dal database, vedere la documentazione del database.

Nota:

È possibile utilizzare un gruppo speciale di funzioni, le funzioni di aggregazione quali SUM( ) e AVG( ), per creare query che generano riepiloghi di dati. Per informazioni dettagliate, vedere Riepilogo dei risultati delle query.

Funzioni stringa

Le funzioni di modifica delle stringhe di caratteri riportate di seguito sono un esempio delle funzioni disponibili in molti database.

Funzione

Descrizione

Esempio

LCASE( )*,  LOWER( )

Converte le stringhe in caratteri minuscoli.

Per convertire il primo carattere in lettere maiuscole, utilizzare

  • SELECT UPPER(substring(lname, 1, 1))

Per convertire i caratteri restanti in lettere minuscole, utilizzare:

  • LOWER(substring (lname, 2, 99))

FROM employee

Visualizza il cognome dopo aver convertito in maiuscolo il primo carattere e in minuscolo gli altri caratteri.

LTRIM( )

Rimuove gli spazi iniziali in una stringa.

SELECT stor_name, LTRIM(stor_address)
FROM stores

Visualizza una colonna indirizzo dopo aver eliminato gli spazi iniziali inutili.

SUBSTRING( )

Estrae uno o più caratteri da una stringa.

SELECT SUBSTRING(phone,1,3)
FROM employee

Visualizza i primi tre caratteri (il prefisso) di un numero di telefono.

UCASE( )*,  UPPER( )

Converte le stringhe in caratteri maiuscoli.

SELECT * FROM employee
WHERE UPPER(lname) = 'SMITH'

Converte il contenuto della colonna lname in caratteri maiuscoli prima di confrontarlo con un valore specifico in modo da trovare solo le corrispondenze esatte se per la ricerca viene applicata la distinzione tra maiuscole e minuscole.

*   Se si richiama una funzione ODBC, utilizzare una sintassi quale: { fn LCASE(text) }.

Funzioni data

Le funzioni riportate di seguito o altre simili sono disponibili in molti database.

Funzione

Descrizione

Esempio

DATEDIFF( )

Calcola un intervallo fra due date.

SELECT fname, lname, hire_date
FROM employee
WHERE DATEDIFF(year, hire_date, getdate()) > 5

Trova tutti i dipendenti assunti da più di cinque anni.

DATEPART( )

Restituisce la parte specificata di una colonna data o DateTime, compreso il giorno, il mese o l'anno.

SELECT DATEPART(year, hire_date)
FROM employee

Visualizza soltanto l'anno di assunzione di un dipendente (non la data completa).

CURDATE( )*,  GETDATE( ) o DATE( )

Restituisce la data corrente nel formato DateTime. Questa funzione risulta utile come input per numerose funzioni sulle date, ad esempio quelle che calcolano un intervallo precedente o successivo rispetto alla data odierna.

SELECT order_id
FROM orders
WHERE order_date = GETDATE()
Displays orders placed today.

Funzioni matematiche

Nella maggior parte dei database sono disponibili funzioni matematiche che possono essere utilizzate per eseguire calcoli. Di seguito vengono riportate alcune funzioni di base disponibili in molti database.

Nota:

È possibile utilizzare le funzioni di aggregazione AVG( ), COUNT( ), MAX( ), MIN( ) e SUM() per creare medie e totali nei report.

Funzione

Descrizione

Esempio

ROUND( )

Arrotonda un numero rispetto a un numero di posizioni decimali specificate

SELECT ROUND(qty * (price * discount), 2)
FROM sales

Visualizza un prezzo totale in base a uno sconto, quindi arrotonda i risultati a due posizioni decimali.

FLOOR( )

Arrotonda un numero per difetto al numero intero più prossimo

UPDATE titles
SET price = FLOOR(price)

Arrotonda per difetto tutti i prezzi nella tabella titles al numero intero più prossimo.

CEILING( )

Arrotonda un numero per eccesso al numero intero più prossimo

INSERT INTO archivetitle
SELECT title, CEILING(price)
FROM titles

Copia title e price (arrotondati per eccesso al numero intero più prossimo) dalla tabella titles nella tabella archivetitle.

Funzioni di sistema

Nella maggior parte dei database sono disponibili funzioni speciali che possono essere utilizzate per restituire informazioni sul database, sull'utente o sul server corrente. Di seguito vengono riportate alcune funzioni di base disponibili in molti database.

Funzione

Descrizione

Esempio

DATALENGTH( )

Restituisce il numero di byte utilizzati dall'espressione specificata.

SELECT DATALENGTH(au_lname)
FROM authors

Elenca il numero di byte richiesto per i cognomi e i nomi.

USER( )*,  USER_NAME( )

Restituisce il nome dell'utente corrente.

SELECT company_name, city, phone
FROM customers
WHERE salesperson = USER_NAME()

Crea un elenco di clienti del venditore che esegue la query.

Altre funzioni

Oltre alle funzioni sopra elencate, in alcuni database sono disponibili funzioni che rendono più agevole la creazione delle query, ad esempio funzioni per la conversione dei tipi di dati o altre funzioni di utilità. Le funzioni elencate di seguito mostrano il tipo delle funzioni di utilità disponibili nella maggior parte dei database.

Funzione

Descrizione

Esempio

CONVERT( )

Converte i dati da un tipo di dati a un altro. Utile per formattare i dati o per utilizzare il contenuto di una colonna di dati come argomento in una funzione che richiede un diverso tipo di dati.

SELECT 'Hired: ' + CONVERT(char (11),
  hire_date)
FROM employee

Visualizza una data con una didascalia. La funzione CONVERT( ) crea una stringa dalla data, in modo da poterla concatenare con una stringa letterale.

SOUNDEX( )

Restituisce il codice Soundex per l'espressione specificata, che può essere utilizzato per creare ricerche di parole simili.

SELECT au_lname, au_fname
FROM authors
WHERE SOUNDEX(au_fname) = 'M240'

Ricerca i nomi che hanno una pronuncia simile a "Michael".

STR( )

Converte dati numerici in una stringa di caratteri per poterli manipolare con operatori di testo.

SELECT str(job_id)
FROM employee

Visualizza la colonna job_id come singola stringa.

Vedere anche

Concetti

Espressioni nelle query

Riferimenti

Struttura delle espressioni

Altre risorse

Esecuzione di query mediante l'utilizzo di parametri