Ricerca…


introduzione

SQL offre diverse funzioni scalari incorporate. Ogni funzione scalare prende un valore come input e restituisce un valore come output per ogni riga in un set di risultati.

Le funzioni scalari vengono utilizzate ovunque sia consentita un'espressione all'interno di un'istruzione T-SQL.

Sintassi

  • CAST (espressione AS data_type [(lunghezza)])
  • CONVERT (data_type [(length)], expression [, style])
  • PARSE (string_value AS data_type [USING culture])
  • DATENAME (datapart, data)
  • GETDATE ()
  • DATEDIFF (datapart, startdate, enddate)
  • DATEADD (datapart, numero, data)
  • SCEGLI (indice, val_1, val_2 [, val_n])
  • IIF (boolean_expression, true_value, false_value)
  • SIGN (espressione numerica)
  • POTENZA (float_expression, y)

Osservazioni

Le funzioni scalari o a riga singola vengono utilizzate per gestire ciascuna riga di dati nel set di risultati, al contrario delle funzioni aggregate che operano sull'intero set di risultati.

Esistono dieci tipi di funzioni scalari.

  1. Le funzioni di configurazione forniscono informazioni sulla configurazione dell'istanza SQL corrente.
  2. Le funzioni di conversione convertono i dati nel tipo di dati corretto per una determinata operazione. Ad esempio, questi tipi di funzioni possono riformattare le informazioni convertendo una stringa in una data o un numero per consentire la comparazione di due diversi tipi.
  3. Le funzioni di data e ora manipolano i campi contenenti i valori di data e ora. Possono restituire valori numerici, di data o di stringa. Ad esempio, è possibile utilizzare una funzione per recuperare il giorno corrente della settimana o dell'anno o recuperare solo l'anno dalla data.

I valori restituiti dalle funzioni di data e ora dipendono dalla data e dall'ora impostate per il sistema operativo del computer che esegue l'istanza SQL.

  1. Funzione logica che esegue operazioni utilizzando operatori logici. Valuta un insieme di condizioni e restituisce un singolo risultato.
  2. Le funzioni matematiche eseguono operazioni matematiche, o calcoli, su espressioni numeriche. Questo tipo di funzione restituisce un singolo valore numerico.
  3. Le funzioni di metadati recuperano le informazioni su un database specificato, come il nome e gli oggetti del database.
  4. Le funzioni di sicurezza forniscono informazioni che è possibile utilizzare per gestire la sicurezza di un database, ad esempio informazioni su utenti e ruoli del database.
  5. Le funzioni stringa eseguono operazioni su valori stringa e restituiscono valori numerici o stringa.

Utilizzando le funzioni di stringa, è possibile, ad esempio, combinare dati, estrarre una sottostringa, confrontare stringhe o convertire una stringa in caratteri maiuscoli o minuscoli.

  1. Le funzioni di sistema eseguono operazioni e restituiscono informazioni su valori, oggetti e impostazioni per l'istanza SQL corrente
  2. Le funzioni statistiche di sistema forniscono varie statistiche sull'istanza SQL corrente, ad esempio per monitorare i livelli di prestazioni correnti del sistema.

Modifiche del personaggio

Le funzioni di modifica dei caratteri includono la conversione di caratteri in caratteri maiuscoli o minuscoli, la conversione di numeri in numeri formattati, l'esecuzione di manipolazioni di caratteri, ecc.

La funzione lower(char) converte il dato parametro di carattere in caratteri a caratteri bassi.

SELECT customer_id, lower(customer_last_name) FROM customer;

restituire il cognome del cliente modificato da "SMITH" a "smith".

Data e ora

In SQL, si utilizzano tipi di dati di data e ora per memorizzare le informazioni del calendario. Questi tipi di dati includono ora, data, ora minima, datetime, datetime2 e datetimeoffset. Ogni tipo di dati ha un formato specifico.


Tipo di dati Formato
tempo hh: mm: ss [.nnnnnnn]
Data AAAA-MM-DD
smalldatetime AAAA-MM-GG hh: mm: ss
appuntamento AAAA-MM-GG hh: mm: ss [.nnn]
datetime2 AAAA-MM-GG hh: mm: ss [.nnnnnnn]
datetimeoffset AAAA-MM-GG hh: mm: ss [.nnnnnnn] [+/-] hh: mm

La funzione DATENAME restituisce il nome o il valore di una parte specifica della data.

SELECT DATENAME (weekday,'2017-01-14') as Datename
DATENAME
Sabato

Si utilizza la funzione GETDATE per determinare la data e l'ora correnti del computer che esegue l'istanza SQL corrente. Questa funzione non include la differenza del fuso orario.

SELECT GETDATE() as Systemdate 
Systemdate
2017-01-14 11: 11: 47.7230728

La funzione DATEDIFF restituisce la differenza tra due date.

Nella sintassi, datepart è il parametro che specifica quale parte della data che si desidera utilizzare per calcolare la differenza. La datapart può essere anno, mese, settimana, giorno, ora, minuto, secondo o millisecondo. Quindi si specifica la data di inizio nel parametro startdate e la data di fine nel parametro enddate per il quale si desidera trovare la differenza.

SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate) 
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID Tempo di elaborazione
43659 7
43660 7
43661 7
43662 7

La funzione DATEADD consente di aggiungere un intervallo a una parte di una data specifica.

SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Added20MoreDays
2017-02-03 00: 00: 00.000

Funzione di configurazione e conversione

Un esempio di una funzione di configurazione in SQL è la funzione @@SERVERNAME . Questa funzione fornisce il nome del server locale su cui è in esecuzione SQL.

SELECT @@SERVERNAME AS 'Server'
server
SQL064

In SQL, la maggior parte delle conversioni di dati si verificano implicitamente, senza alcun intervento da parte dell'utente.

Per eseguire conversioni che non possono essere completate implicitamente, è possibile utilizzare le funzioni CAST o CONVERT .

La sintassi della funzione CAST è più semplice della sintassi della funzione CONVERT , ma è limitata in ciò che può fare.

Qui, utilizziamo entrambe le funzioni CAST e CONVERT per convertire il tipo di dati datetime nel tipo di dati varchar .

La funzione CAST usa sempre l'impostazione di stile predefinita. Ad esempio, rappresenterà le date e le ore utilizzando il formato AAAA-MM-GG.

La funzione CONVERT usa lo stile di data e ora specificato. In questo caso, 3 specifica il formato data gg / mm / aa.

USE AdventureWorks2012
GO
SELECT FirstName + ' ' + LastName + ' was hired on ' +
       CAST(HireDate AS varchar(20)) AS 'Cast',
       FirstName + ' ' + LastName + ' was hired on ' +
       CONVERT(varchar, HireDate, 3) AS 'Convert'
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
GO
lanciare Convertire
David Hamiltion è stato assunto il 2003-02-04 David Hamiltion è stato assunto il 04/02/03

Un altro esempio di una funzione di conversione è la funzione PARSE . Questa funzione converte una stringa in un tipo di dati specificato.

Nella sintassi della funzione, si specifica la stringa che deve essere convertita, la parola chiave AS e quindi il tipo di dati richiesto. Facoltativamente, è anche possibile specificare la cultura in cui il valore stringa deve essere formattato. Se non lo si specifica, viene utilizzata la lingua per la sessione.

Se il valore stringa non può essere convertito in formato numerico, data o ora, si verificherà un errore. Dovrai quindi utilizzare CAST o CONVERT per la conversione.

SELECT PARSE('Monday, 13 August 2012' AS datetime2 USING 'en-US') AS 'Date in English'
Data in inglese
2012-08-13 00: 00: 00.0000000

Funzione logica e matematica

SQL ha due funzioni logiche: CHOOSE e IIF .

La funzione CHOOSE restituisce un elemento da un elenco di valori, in base alla sua posizione nell'elenco. Questa posizione è specificata dall'indice.

Nella sintassi, il parametro index specifica l'elemento ed è un numero intero o intero. Il parametro val_1 ... val_n identifica l'elenco di valori.

SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
Risultato
I saldi

In questo esempio, si utilizza la funzione CHOOSE per restituire la seconda voce in un elenco di reparti.


La funzione IIF restituisce uno di due valori, in base a una particolare condizione. Se la condizione è vera, restituirà il valore vero. Altrimenti restituirà un valore falso.

Nella sintassi, il parametro boolean_expression specifica l'espressione booleana. Il parametro true_value specifica il valore che deve essere restituito se boolean_expression restituisce true e il parametro false_value specifica il valore che deve essere restituito se boolean_expression restituisce false.

SELECT BusinessEntityID, SalesYTD, 
       IIF(SalesYTD > 200000, 'Bonus', 'No Bonus') AS 'Bonus?'
FROM Sales.SalesPerson
GO
BusinessEntityID SalesYTD Bonus?
274 559697.5639 indennità
275 3763178.1787 indennità
285 172524.4512 Nessun bonus

In questo esempio, si utilizza la funzione IIF per restituire uno dei due valori. Se le vendite da inizio anno a un venditore sono superiori a 200.000, questa persona avrà diritto a un bonus. Valori inferiori a 200.000 significano che i dipendenti non si qualificano per i bonus.


SQL include diverse funzioni matematiche che è possibile utilizzare per eseguire calcoli sui valori di input e restituire risultati numerici.


Un esempio è la funzione SIGN , che restituisce un valore che indica il segno di un'espressione. Il valore di -1 indica un'espressione negativa, il valore di +1 indica un'espressione positiva e 0 indica zero.

SELECT SIGN(-20) AS 'Sign'
Cartello
-1

Nell'esempio, l'input è un numero negativo, quindi il riquadro Risultati elenca il risultato -1.


Un'altra funzione matematica è la funzione POWER . Questa funzione fornisce il valore di un'espressione elevata a una potenza specificata.

Nella sintassi, il parametro float_expression specifica l'espressione e il parametro y specifica la potenza a cui si desidera aumentare l'espressione.

SELECT POWER(50, 3) AS Result
Risultato
125000


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow