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 daY
).
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