In SQLite, substring()
è un alias per substr()
.
Restituisce una sottostringa da una stringa, in base a una determinata posizione iniziale all'interno della stringa. Sono richiesti due argomenti e viene accettato un terzo argomento facoltativo.
La substring()
la denominazione è stata introdotta in SQLite 3.34.0, che è stato rilasciato il 1° dicembre 2020. Il motivo per cui substring()
la sintassi è stata introdotta per la compatibilità con SQL Server.
Sintassi
Quindi ora puoi chiamare la funzione 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.
Come accennato, la substring()
la sintassi è disponibile solo da SQLite 3.34.0.
Esempio con 3 argomenti
Ecco un esempio di base per dimostrare come utilizzare substring()
con tre argomenti.
SELECT substring('Dolemite', 3, 4);
Risultato:
lemi
Esempio con 2 argomenti
Se ometto il terzo argomento dell'esempio precedente, ottengo il seguente risultato.
SELECT substring('Dolemite', 3);
Risultato:
lemite
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 substring('Dolemite', -3);
Risultato:
ite
Ecco un altro esempio, questa volta specifico la lunghezza della sottostringa.
SELECT substring('Dolemite', -7, 4);
Risultato:
olem
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 substring('Dolemite', -1, -4);
Risultato:
emit
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 substring('Dolemite', 6, -4);
Risultato:
olem
Esempio di database
Ecco un esempio che utilizza substring()
in una query di database sul database di esempio Chinook.
SELECT
substring(Name, 1, 10),
Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;
Risultato:
substring(Name, 1, 10) Name ---------------------- --------------------------------- Zeca Pagod Zeca Pagodinho Youssou N' Youssou N'Dour Yo-Yo Ma Yo-Yo Ma Yehudi Men Yehudi Menuhin Xis Xis Wilhelm Ke Wilhelm Kempff Whitesnake Whitesnake Vinícius E Vinícius E Qurteto Em Cy Vinícius E Vinícius E Odette Lara Vinícius D Vinícius De Moraes & Baden Powell
In questo caso, ho restituito i primi dieci caratteri del Name
colonna. Ho anche restituito il contenuto completo del Name
colonna per confrontare i risultati.