sql >> Database >  >> RDS >> SQLite

Hoe Substr() werkt in SQLite

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 (vanaf Y ).

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          

  1. SQLite Database geeft waarschuwing automatische index op <table_name>(kolom) Na het upgraden van Android L

  2. Een overzicht van caching voor PostgreSQL

  3. Zoals Operator in Entity Framework?

  4. Controleer of kolomtekenreeks in database een subtekenreeks is van een query in sqlite