SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona Substr() in SQLite

SQLite substr() La funzione consente di restituire una sottostringa da una stringa, in base a una determinata posizione iniziale all'interno della stringa.

Richiede due argomenti e accetta un terzo argomento facoltativo.

Aggiorna :A partire da SQLite 3.34.0 (rilasciato il 1° dicembre 2020), substr() ora può essere chiamato substring() per la compatibilità con SQL Server.

Sintassi

Puoi chiamare substr() in uno dei seguenti modi:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X è la stringa completa che contiene la sottostringa che vuoi restituire.
  • Y è la posizione del primo carattere della sottostringa che vuoi restituire da quella stringa.
  • Z è il numero di caratteri che vuoi restituire. Se omesso, vengono restituiti tutti i caratteri successivi (a partire da Y ).

Se X è una stringa, quindi gli indici dei caratteri si riferiscono ai caratteri UTF-8 effettivi. Se X è un BLOB quindi gli indici si riferiscono a byte.

Nota che il substring() la sintassi è disponibile solo da SQLite 3.34.0.

Esempio con 3 argomenti

Ecco un esempio di base per dimostrare come utilizzare substr() con tre argomenti.

SELECT substr('Industrial', 3, 4);

Risultato:

dust

Esempio con 2 argomenti

Se ometto il terzo argomento dell'esempio precedente, ottengo il seguente risultato.

SELECT substr('Industrial', 3);

Risultato:

dustrial

Punto di partenza negativo

È possibile fornire un valore negativo per il secondo argomento. Quando lo fai, il primo carattere della sottostringa viene trovato contando da destra anziché da sinistra.

SELECT substr('Industrial', -3);

Risultato:

ial

Ecco un altro esempio, questa volta specifico la lunghezza della sottostringa.

SELECT substr('Industrial', -8, 4);

Risultato:

dust

Quindi i valori negativi hanno lo stesso effetto di quando si usa substring() funzione in MySQL. MySQL ha anche un substr() funzione, che è sinonimo della sua substring() funzione.

Tuttavia, questo è diverso dal modo in cui SQL Server tratta i valori negativi. Quando passi un valore negativo a substring() in SQL Server, inizierà semplicemente il conteggio in un punto immaginario prima dell'inizio della stringa.

Lunghezza della sottostringa negativa

L'esempio precedente utilizzava un punto di partenza negativo. In questo esempio, userò una lunghezza negativa. Con questo intendo fornire un valore negativo per il terzo argomento.

SELECT substr('Industrial', -3, -4);

Risultato:

ustr

Quindi, fornendo un valore negativo per il terzo argomento, vengono restituiti i caratteri che precedono il punto iniziale.

Questo vale anche quando il secondo argomento è un valore positivo.

SELECT substr('Industrial', 7, -4);

Risultato:

dust

Esempio di database

Ecco un esempio che utilizza substr() in una query del database sul database di esempio Chinook.

SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;

Risultato:

substr(Title, 1, 20)
--------------------
For Those About To R
Balls to the Wall   
Restless and Wild   
Let There Be Rock   
Big Ones            
Jagged Little Pill  
Facelift            
Warner 25 Anos      
Plays Metallica By F
Audioslave