SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise von Substr() in SQLite

Der SQLite substr() Mit der Funktion können Sie eine Teilzeichenfolge aus einer Zeichenfolge zurückgeben, basierend auf einer bestimmten Startposition innerhalb der Zeichenfolge.

Es erfordert zwei Argumente und akzeptiert ein drittes optionales Argument.

Aktualisieren :Ab SQLite 3.34.0 (veröffentlicht am 1. Dezember 2020), substr() kann jetzt substring() aufgerufen werden für die Kompatibilität mit SQL Server.

Syntax

Sie können substr() aufrufen auf eine der folgenden Arten:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X ist die vollständige Zeichenfolge, die die Teilzeichenfolge enthält, die Sie zurückgeben möchten.
  • Y ist die Position des ersten Zeichens der Teilzeichenfolge, die Sie von dieser Zeichenfolge zurückgeben möchten.
  • Z ist die Anzahl der Zeichen, die Sie zurückgeben möchten. Wenn weggelassen, werden alle nachfolgenden Zeichen zurückgegeben (beginnend mit Y ).

Wenn X eine Zeichenfolge ist, beziehen sich Zeichenindizes auf tatsächliche UTF-8-Zeichen. Wenn X ein BLOB ist, beziehen sich die Indizes auf Bytes.

Beachten Sie, dass substring() Syntax ist nur ab SQLite 3.34.0 verfügbar.

Beispiel mit 3 Argumenten

Hier ist ein einfaches Beispiel, um zu demonstrieren, wie man substr() verwendet mit drei Argumenten.

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

Ergebnis:

dust

Beispiel mit 2 Argumenten

Wenn ich das dritte Argument aus dem vorherigen Beispiel weglasse, erhalte ich das folgende Ergebnis.

SELECT substr('Industrial', 3);

Ergebnis:

dustrial

Negativer Ausgangspunkt

Sie können für das zweite Argument einen negativen Wert angeben. Wenn Sie dies tun, wird das erste Zeichen des Teilstrings gefunden, indem von rechts statt von links gezählt wird.

SELECT substr('Industrial', -3);

Ergebnis:

ial

Hier ist ein weiteres Beispiel, dieses Mal gebe ich die Länge des Teilstrings an.

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

Ergebnis:

dust

Negative Werte haben also den gleichen Effekt wie bei Verwendung des substring() Funktion in MySQL. MySQL hat auch ein substr() Funktion, die ein Synonym ihres substring() ist Funktion.

Dies unterscheidet sich jedoch davon, wie der SQL Server negative Werte behandelt. Wenn Sie einen negativen Wert an substring() übergeben In SQL Server beginnt es einfach an einem imaginären Punkt zu zählen, bevor die Zeichenfolge beginnt.

Negative Teilstringlänge

Im vorherigen Beispiel wurde ein negativer Startpunkt verwendet. In diesem Beispiel verwende ich eine negative Länge. Damit meine ich, dass ich für das dritte Argument einen negativen Wert angeben werde.

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

Ergebnis:

ustr

Wenn Sie also einen negativen Wert für das dritte Argument angeben, werden die Zeichen vor dem Startpunkt zurückgegeben.

Dies gilt auch, wenn das zweite Argument ein positiver Wert ist.

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

Ergebnis:

dust

Datenbankbeispiel

Hier ist ein Beispiel, das substr() verwendet in einer Datenbankabfrage gegen die Chinook-Beispieldatenbank.

SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;

Ergebnis:

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