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

SQLite SUBSTRING() Forklaret

I SQLite, substring() er et alias for substr() .

Det returnerer en understreng fra en streng, baseret på en given startplacering i strengen. Der kræves to argumenter, og et tredje valgfrit argument accepteres.

substring() navngivning blev introduceret i SQLite 3.34.0, som blev frigivet den 1. december 2020. Årsagen til at substring() syntaks blev introduceret var for kompatibilitet med SQL Server.

Syntaks

Så du kan nu kalde funktionen 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.

Som nævnt er substring() syntaks er kun tilgængelig fra SQLite 3.34.0.

Eksempel med 3 argumenter

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

SELECT substring('Dolemite', 3, 4);

Resultat:

lemi

Eksempel med 2 argumenter

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

SELECT substring('Dolemite', 3);

Resultat:

lemite

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 substring('Dolemite', -3);

Resultat:

ite

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

SELECT substring('Dolemite', -7, 4);

Resultat:

olem

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 substring('Dolemite', -1, -4);

Resultat:

emit

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 substring('Dolemite', 6, -4);

Resultat:

olem

Databaseeksempel

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

SELECT 
    substring(Name, 1, 10),
    Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;

Resultat:

substring(Name, 1, 10)  Name                             
----------------------  ---------------------------------
Zeca Pagod              Zeca Pagodinho                   
Youssou N'              Youssou N'Dour                   
Yo-Yo Ma                Yo-Yo Ma                         
Yehudi Men              Yehudi Menuhin                   
Xis                     Xis                              
Wilhelm Ke              Wilhelm Kempff                   
Whitesnake              Whitesnake                       
Vinícius E              Vinícius E Qurteto Em Cy         
Vinícius E              Vinícius E Odette Lara           
Vinícius D              Vinícius De Moraes & Baden Powell

I dette tilfælde returnerede jeg de første ti tegn fra Name kolonne. Jeg returnerede også det fulde indhold af Name kolonne for at sammenligne resultaterne.


  1. Installation af WordPress ved hjælp af WP-CLI

  2. Udbyderen er ikke kompatibel med versionen af ​​Oracle-klienten

  3. Forespørgsel tilskud til en tabel i postgres

  4. Sådan bestemmes den autogenererede primærnøgle, der bruges som fremmednøgle til en anden tabel