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

Hvordan Substr() virker i SQLite

SQLite substr() funktion giver dig mulighed for at returnere en understreng fra en streng, baseret på en given startplacering i strengen.

Det kræver to argumenter og accepterer et tredje valgfrit argument.

Opdater :Fra SQLite 3.34.0 (frigivet den 1. december 2020), substr() kan nu kaldes substring() for kompatibilitet med SQL Server.

Syntaks

Du kan kalde substr() på en af ​​følgende måder:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X er den fulde streng, der indeholder den understreng, du vil returnere.
  • Y er placeringen af ​​det første tegn i understrengen, som du vil returnere fra den streng.
  • Z er antallet af tegn, du vil have returneret. Hvis det udelades, returneres alle efterfølgende tegn (startende fra Y ).

Hvis X er en streng, så henviser tegnindekser til faktiske UTF-8-tegn. Hvis X er en BLOB, så refererer indeksene til bytes.

Bemærk, at substring() syntaks er kun tilgængelig fra SQLite 3.34.0.

Eksempel med 3 argumenter

Her er et grundlæggende eksempel for at demonstrere, hvordan man bruger substr() med tre argumenter.

SELECT substr('Industrial', 3, 4);

Resultat:

dust

Eksempel med 2 argumenter

Hvis jeg udelader det tredje argument fra det foregående eksempel, får jeg følgende resultat.

SELECT substr('Industrial', 3);

Resultat:

dustrial

Negativt udgangspunkt

Du kan angive en negativ værdi for det andet argument. Når du gør dette, findes det første tegn i understrengen ved at tælle fra højre i stedet for fra venstre.

SELECT substr('Industrial', -3);

Resultat:

ial

Her er et andet eksempel, denne gang angiver jeg længden af ​​understrengen.

SELECT substr('Industrial', -8, 4);

Resultat:

dust

Så negative værdier har samme effekt, som når du bruger substring() funktion i MySQL. MySQL har også en substr() funktion, som er et synonym for dens substring() fungere.

Dette er dog anderledes end, hvordan SQL Server behandler negative værdier. Når du sender en negativ værdi til substring() i SQL Server vil den simpelthen begynde at tælle på et imaginært punkt, før strengen begynder.

Negativ delstrenglængde

Det foregående eksempel brugte et negativt udgangspunkt. I dette eksempel vil jeg bruge en negativ længde. Med dette mener jeg, at jeg vil give en negativ værdi for det tredje argument.

SELECT substr('Industrial', -3, -4);

Resultat:

ustr

Så at angive en negativ værdi for det tredje argument resulterer i, at tegnene før startpunktet returneres.

Dette gælder også, når det andet argument er en positiv værdi.

SELECT substr('Industrial', 7, -4);

Resultat:

dust

Databaseeksempel

Her er et eksempel, der bruger substr() i en databaseforespørgsel mod Chinook-eksempeldatabasen.

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. SLET VS DROP i SQL

  2. Sådan fungerer SQLite Avg()

  3. Tilføj ordensindikatoren til en dato i PostgreSQL

  4. Hvordan opretter man en midlertidig tabel i en Oracle-database?