Datenbank.Leitfaden

In SQL Server-Umgebungen stehen uns zwei der vielen String-Funktionen zur Verfügung: LEFT() und SUBSTRING().

Diese Funktionen machen eine ähnliche Sache, aber es gibt Unterschiede. Dieser Artikel befasst sich mit einigen der Hauptunterschiede zwischen diesen Funktionen.

Definition

Schauen wir uns zunächst an, was jede Funktion tut:

LEFT() Gibt den linken Teil einer Zeichenfolge mit der angegebenen Anzahl von Zeichen zurück., SUBSTRING() – Gibt einen Teil eines Zeichen -, Binär -, text-oder Bild-Ausdruck.

Also LEFT() gibt nur den linken Teil der Zeichenfolge zurück.

SUBSTRING() gibt einfach einen Teil des Ausdrucks zurück (er ist nicht nur auf den linken Teil beschränkt – er könnte links, rechts oder irgendwo in der Mitte sein).

Beispiel 1-Gleiches Ergebnis

Beide Funktionen können verwendet werden, um eine bestimmte Anzahl von Zeichen von links zurückzugeben.

SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;

Ergebnis:

+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+

LEFT() ist jedoch prägnanter., Dies ist teilweise darauf zurückzuführen, dass der Funktionsname weniger Zeichen enthält.

Aber es liegt auch an der Syntax. Die Funktion LEFT() benötigt nur zwei Argumente (den Ausdruck und die Anzahl der zurückzugebenden Zeichen), während SUBSTRING() drei Argumente benötigt (den Ausdruck, die Startposition und die Anzahl der Zeichen, die von dieser Startposition zurückgegeben werden sollen).,

Beispiel 2-Wenn TEILZEICHENFOLGE besser ist

SUBSTRING() ist viel besser als LEFT() beim Abrufen von Daten aus der Mitte der Zeichenfolge. Eigentlich ist left nicht dafür ausgelegt. Wenn Sie dazu wirklich LEFT() möchten, müssen Sie einige Tricks ausführen, z. B. eine RIGHT() Funktion als erstes Argument.,

Beispiel:

SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;

Ergebnis:

+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+

Akzeptierte Datentypen

Die Funktion LEFT() akzeptiert die Datentypen Text und ntext nicht als erstes Argument. Es unterstützt alle anderen Datentypen, die in varchar oder nvarchar konvertiert werden können.

Die Funktion SUBSTRING() akzeptiert dagegen Zeichen -, Binär -, Text -, ntext-und Bildausdrücke.,

Rückgabewerte

LEFT() gibt varchar zurück, wenn das erste Argument ein Nicht-Unicode-Zeichendatentyp ist, und nvarchar, wenn es sich um einen Unicode-Zeichendatentyp handelt.,

The return values for SUBSTRING() are as follows:

Expression (first argument) Return type
char/varchar/text varchar
nchar/nvarchar/ntext nvarchar
binary/varbinary/image varbinary

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.