sql >> Databasteknik >  >> RDS >> SQLite

Hur Substr() fungerar i SQLite

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ån Y ).

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          

  1. Finns det något sätt att tvinga OracleCommand.BindByName att vara sant som standard för ODP.NET?

  2. 3 sätt att konvertera HEX till INT i SQL Server (T-SQL)

  3. Bygga en mycket tillgänglig databas för Moodle med MariaDB (replikering och MariaDB-kluster)

  4. Operator finns inte:heltal =? när du använder Postgres