Database.Guida

In ambienti SQL Server, due delle molte funzioni di stringa a nostra disposizione sonoLEFT()eSUBSTRING().

Queste funzioni fanno una cosa simile, ma ci sono differenze. Questo articolo esamina alcune delle principali differenze tra queste funzioni.

Definizione

Per prima cosa, diamo un’occhiata a ciò che fa ogni funzione:

LEFT() Restituisce la parte sinistra di una stringa di caratteri con il numero specificato di caratteri., SUBSTRING() Restituisce parte di un’espressione di carattere, binario, testo o immagine.

So LEFT() restituisce solo la parte sinistra della stringa.

SUBSTRING() restituisce semplicemente una parte dell’espressione (non è limitata alla sola parte sinistra – potrebbe essere sinistra, destra o da qualche parte nel mezzo).

Esempio 1 – Stesso risultato

Entrambe le funzioni possono essere utilizzate per restituire un certo numero di caratteri da sinistra.

SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;

Risultato:

+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+

Tuttavia, LEFT() è più conciso., Ciò è in parte dovuto al fatto che ci sono meno caratteri nel nome della funzione.

Ma è anche a causa della sintassi. La funzioneLEFT() richiede solo due argomenti (l’espressione e il numero di caratteri da restituire), mentreSUBSTRING() richiede tre argomenti (l’espressione, la posizione iniziale e il numero di caratteri da restituire da quella posizione iniziale).,

Esempio 2 – Quando la SOTTOSTRINGA è migliore

SUBSTRING() è molto meglio diLEFT() nell’afferrare i dati dal centro della stringa. In realtà, left non è progettato per questo. Se vuoi davvero usareLEFT() per farlo, dovresti fare qualche trucco, come usare una funzioneRIGHT() come primo argomento.,

Esempio:

SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;

Risultato:

+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+

Tipi di dati accettati

La funzione LEFT() non accetta i tipi di dati text e ntext come primo argomento. Supporta tutti gli altri tipi di dati che possono essere convertiti in varchar o nvarchar.

La funzione SUBSTRING() accetta invece espressioni di carattere, binario, testo, ntext e immagine.,

Valori di ritorno

LEFT() restituisce varchar quando il primo argomento è un tipo di dati di carattere non Unicode, e nvarchar quando si tratta di un tipo di dati di carattere Unicode.,

The return values for SUBSTRING() are as follows:

Expression (first argument) Return type
char/varchar/text varchar
nchar/nvarchar/ntext nvarchar
binary/varbinary/image varbinary

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *