De SQLite substr()
Met de functie kunt u een subtekenreeks van een tekenreeks retourneren, gebaseerd op een bepaalde startlocatie binnen de tekenreeks.
Het vereist twee argumenten en accepteert een derde optioneel argument.
Bijwerken :Vanaf SQLite 3.34.0 (uitgebracht op 1 december 2020), substr()
kan nu worden aangeroepen substring()
voor compatibiliteit met SQL Server.
Syntaxis
U kunt substr()
. aanroepen op een van de volgende manieren:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
is de volledige tekenreeks die de subtekenreeks bevat die u wilt retourneren.Y
is de locatie van het eerste teken van de subtekenreeks die u van die tekenreeks wilt retourneren.Z
is het aantal tekens dat u wilt retourneren. Indien weggelaten, worden alle volgende tekens geretourneerd (vanafY
).
Als X
is een string, dan verwijzen karakterindexen naar daadwerkelijke UTF-8 karakters. Als X
is een BLOB, dan verwijzen de indices naar bytes.
Merk op dat de substring()
syntaxis is alleen beschikbaar vanaf SQLite 3.34.0.
Voorbeeld met 3 argumenten
Hier is een eenvoudig voorbeeld om te demonstreren hoe substr()
te gebruiken met drie argumenten.
SELECT substr('Industrial', 3, 4);
Resultaat:
dust
Voorbeeld met 2 argumenten
Als ik het derde argument uit het vorige voorbeeld weglaat, krijg ik het volgende resultaat.
SELECT substr('Industrial', 3);
Resultaat:
dustrial
Negatief startpunt
U kunt een negatieve waarde opgeven voor het tweede argument. Wanneer u dit doet, wordt het eerste teken van de subtekenreeks gevonden door vanaf rechts te tellen in plaats van links.
SELECT substr('Industrial', -3);
Resultaat:
ial
Hier is nog een voorbeeld, deze keer specificeer ik de lengte van de substring.
SELECT substr('Industrial', -8, 4);
Resultaat:
dust
Negatieve waarden hebben dus hetzelfde effect als bij het gebruik van de substring()
functie in MySQL. MySQL heeft ook een substr()
functie, wat een synoniem is van zijn substring()
functie.
Dit is echter anders dan hoe de SQL Server omgaat met negatieve waarden. Wanneer u een negatieve waarde doorgeeft aan substring()
in SQL Server begint het gewoon te tellen op een denkbeeldig punt voordat de string begint.
Negatieve subtekenreekslengte
In het vorige voorbeeld werd een negatief uitgangspunt gebruikt. In dit voorbeeld ga ik een negatieve lengte gebruiken. Hiermee bedoel ik dat ik een negatieve waarde ga geven voor het derde argument.
SELECT substr('Industrial', -3, -4);
Resultaat:
ustr
Dus het verstrekken van een negatieve waarde voor het derde argument resulteert in het retourneren van de tekens voorafgaand aan het startpunt.
Dit geldt ook als het tweede argument een positieve waarde is.
SELECT substr('Industrial', 7, -4);
Resultaat:
dust
Databasevoorbeeld
Hier is een voorbeeld dat gebruikmaakt van substr()
in een databasequery tegen de Chinook-voorbeelddatabase.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;
Resultaat:
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