SQLite substr()
funktionen låter dig returnera en delsträng från en sträng, baserat på en given startplats i strängen.
Den kräver två argument och accepterar ett tredje valfritt argument.
Uppdatera :Från och med SQLite 3.34.0 (släpptes den 1 december 2020), substr()
kan nu kallas substring()
för kompatibilitet med SQL Server.
Syntax
Du kan anropa substr()
på något av följande sätt:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
är den fullständiga strängen som innehåller delsträngen du vill returnera.Y
är platsen för det första tecknet i delsträngen som du vill returnera från den strängen.Z
är antalet tecken som du vill ha tillbaka. Om det utelämnas, returneras alla efterföljande tecken (med början frånY
).
Om X
är en sträng hänvisar teckenindex till faktiska UTF-8-tecken. Om X
är en BLOB hänvisar indexen till bytes.
Observera att substring()
syntax är endast tillgänglig från SQLite 3.34.0.
Exempel med 3 argument
Här är ett grundläggande exempel för att visa hur man använder substr()
med tre argument.
SELECT substr('Industrial', 3, 4);
Resultat:
dust
Exempel med två argument
Om jag utelämnar det tredje argumentet från föregående exempel får jag följande resultat.
SELECT substr('Industrial', 3);
Resultat:
dustrial
Negativ utgångspunkt
Du kan ange ett negativt värde för det andra argumentet. När du gör detta hittas det första tecknet i delsträngen genom att räkna från höger snarare än från vänster.
SELECT substr('Industrial', -3);
Resultat:
ial
Här är ett annat exempel, den här gången anger jag längden på delsträngen.
SELECT substr('Industrial', -8, 4);
Resultat:
dust
Så negativa värden har samma effekt som när du använder substring()
funktion i MySQL. MySQL har också en substr()
funktion, som är en synonym till dess substring()
fungera.
Detta skiljer sig dock från hur SQL Server behandlar negativa värden. När du skickar ett negativt värde till substring()
i SQL Server börjar den helt enkelt räknas vid en tänkt punkt innan strängen börjar.
Negativ delsträngslängd
I det föregående exemplet användes en negativ utgångspunkt. I det här exemplet kommer jag att använda en negativ längd. Med detta menar jag att jag ska ge ett negativt värde för det tredje argumentet.
SELECT substr('Industrial', -3, -4);
Resultat:
ustr
Så att ge ett negativt värde för det tredje argumentet resulterar i att tecknen som föregår startpunkten returneras.
Detta gäller även när det andra argumentet är ett positivt värde.
SELECT substr('Industrial', 7, -4);
Resultat:
dust
Databasexempel
Här är ett exempel som använder substr()
i en databasfråga mot Chinook-exempeldatabasen.
SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;
Resultat:
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