Summary: in questo tutorial, imparerete come usare la funzione SQL Server LEFT()
per estrarre un numero di caratteri dal lato sinistro di una data stringa.
SQL Server LEFT() function overview
La funzione LEFT()
estrae un dato numero di caratteri dal lato sinistro di una stringa fornita. Per esempio, LEFT('SQL Server', 3)
restituisce SQL
.
La sintassi della funzione LEFT()
è la seguente:
Code language: SQL (Structured Query Language) (sql)LEFT ( input_string , number_of_characters )
In questa sintassi:
- Il
input_string
può essere una stringa letterale, variabile o colonna. Il tipo di dati del risultato delinput_string
può essere qualsiasi tipo di dati, eccettoTEXT
oNTEXT
, che è implicitamente convertito inVARCHAR
oNVARCHAR
. - Il
number_of_characters
è un numero intero positivo che specifica il numero di caratteri delinput_string
sarà restituito.
La funzione LEFT()
restituisce un valore di VARCHAR
quando il input_string
è un nonUnicode o NVARCHAR
se il input_string
è un tipo di carattere Unicode.
Esempi di funzione SQL Server LEFT()
Facciamo qualche esempio di utilizzo della funzione LEFT()
per capirla meglio.
A) usando la funzione LEFT() con una stringa di caratteri letterale
La seguente dichiarazione usa LEFT()
per restituire i tre caratteri più a sinistra della stringa di caratteri SQL Server
:
Code language: SQL (Structured Query Language) (sql)SELECT LEFT('SQL Server',3) Result_string;
Ecco l’output:
Result_string-------------SQL(1 row affected)
B) Usare la funzione LEFT() con una colonna della tabella
L’esempio seguente restituisce i sette caratteri più a sinistra di ogni nome di prodotto nella tabella production.products
:
Code language: SQL (Structured Query Language) (sql)SELECT product_name, LEFT(product_name, 7) first_7_charactersFROM production.productsORDER BY product_name;
L’immagine seguente mostra l’output parziale:
C) Utilizzo della funzione LEFT() con la clausola GROUP BY
L’esempio seguente utilizza la funzione LEFT()
per restituire un insieme di iniziali del nome del prodotto e il numero di ogni prodotto per ogni iniziale:
Code language: SQL (Structured Query Language) (sql)SELECTLEFT(product_name, 1) initial, COUNT(product_name) product_countFROM production.productsGROUP BYleft(product_name, 1)ORDER BY initial;
Ecco l’output:
Questa query può essere utilizzata per la paginazione alfabetica nelle applicazioni.