In SQLite substring()
ist ein Alias für substr()
.
Es gibt eine Teilzeichenfolge aus einer Zeichenfolge zurück, basierend auf einer bestimmten Startposition innerhalb der Zeichenfolge. Zwei Argumente sind erforderlich, und ein drittes optionales Argument wird akzeptiert.
Der substring()
Benennung wurde in SQLite 3.34.0 eingeführt, das am 1. Dezember 2020 veröffentlicht wurde. Der Grund dafür, dass der substring()
Syntax wurde eingeführt, um die Kompatibilität mit SQL Server zu gewährleisten.
Syntax
Sie können die Funktion jetzt also auf eine der folgenden Arten aufrufen:
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 mitY
).
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.
Wie bereits erwähnt, der 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 substring()
verwendet mit drei Argumenten.
SELECT substring('Dolemite', 3, 4);
Ergebnis:
lemi
Beispiel mit 2 Argumenten
Wenn ich das dritte Argument aus dem vorherigen Beispiel weglasse, erhalte ich das folgende Ergebnis.
SELECT substring('Dolemite', 3);
Ergebnis:
lemite
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 substring('Dolemite', -3);
Ergebnis:
ite
Hier ist ein weiteres Beispiel, dieses Mal gebe ich die Länge des Teilstrings an.
SELECT substring('Dolemite', -7, 4);
Ergebnis:
olem
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 substring('Dolemite', -1, -4);
Ergebnis:
emit
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 substring('Dolemite', 6, -4);
Ergebnis:
olem
Datenbankbeispiel
Hier ist ein Beispiel, das substring()
verwendet in einer Datenbankabfrage gegen die Chinook-Beispieldatenbank.
SELECT
substring(Name, 1, 10),
Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;
Ergebnis:
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
In diesem Fall habe ich die ersten zehn Zeichen von Name
zurückgegeben Säule. Ich habe auch den vollständigen Inhalt von Name
zurückgegeben Spalte, um die Ergebnisse zu vergleichen.