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

Spiegazione di SQLite SUBSTRING()

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

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.