Zurück zur Artikelliste Artikel
13 Leseminuten

SQL-String-Funktionen: Ein vollständiger Überblick

Eine Übersicht über alle zentralen SQL-String-Funktionen, einschließlich ihrer Definitionen und Beispiele.

SQL-Stringfunktionen manipulieren Stringwerte (einschließlich Text und alphanumerische Werte). Die String-Funktionen, die in SQL auch als Textfunktionen bezeichnet werden, nehmen einen oder mehrere String-Werte als Argument und geben einen modifizierten String-Wert zurück.

Schauen Sie sich diesen interaktiven Kurs auf Standard-SQL-Funktionen wenn Sie mehr praktische Übungen wünschen, als dieser Artikel enthält. Er bietet 211 Übungen zu numerischenSQL-Funktionen, String- oder Textfunktionen, Datums- und Zeitfunktionen sowie Aggregatfunktionen. Lösen Sie die Übungen, um Ihr Wissen zu überprüfen und zu festigen, und stellen Sie es dann in einem abschließenden Quiz auf die Probe.

Kommen wir nun zu unserem Überblick über die String-Funktionen von SQL.

Liste der SQL-String-Funktionen

Wichtig: In SQL werden String-Werte in einfache Anführungszeichen eingeschlossen, z. B. so: 'this is a string'. Was aber, wenn wir ein einzelnes Anführungszeichen in den String-Wert einschließen wollen? In unserem Kochbuch How to Escape Single Quotes in SQL erfahren Sie, wie Sie Sonderzeichen in SQL-Zeichenketten umgehen können.

Hinweis: Die SQL-Stringfunktionen können sich je nach Datenbank-Engine unterscheiden. Im Folgenden finden Sie eine Liste von Funktionen, die in gängigen Datenbanken wie PostgreSQL, MySQL und SQL Server verfügbar sind.

Function

Description

Further reading

|| (Concatenate)

→ Takes two or more strings.

← Concatenates (combines) them and returns the resulting string.

* How to concatenate strings in SQL

* How to concatenate string and NULL values in SQL Server

< (Less than)

 > (Greater than)

 <= (Less than or equal to)

>= (Greater than or equal to)

 = (Equals)

 <> , != (Does not equal)

→ Takes two strings.

← Compares them and returns a Boolean value.

* How to compare two strings in SQL

* How to order strings alphabetically in SQL

LIKE

→ Takes one string and one regex template.

← Compares them and returns a Boolean value.

* How to use LIKE in SQL

CONCAT()

→ Takes two or more strings.

← Concatenates them and returns the resulting string.

* How to concatenate strings in SQL

* How to concatenate string and NULL values in SQL Server

CONCAT_WS()

→ Takes a separator value and two or more strings.

← Concatenates them with the separator value in between and returns the resulting string.

* How to concatenate strings in SQL

* How to concatenate string and NULL values in SQL Server

LEFT()

→ Takes one string and one integer (x).

← Returns x characters, starting from the left (e.g. LEFT(5) returns the first 5 characters in the string).

 

LENGTH()

(SQL Server: LEN())

→ Takes one string.

← Returns the number of characters in the string.

* How to check the length of a string in SQL

LOWER()

→ Takes one string.

← Returns this string with all characters in lower case.

* How to convert a string to lowercase in SQL

LPAD()

(SQL Server equivalents available)

→ Takes a string, an integer, and another string.

← Pads the first string value (starting from the left) with repetitions of the second string value to make the length equal to the integer.

 

LTRIM()

→ Takes one string.

← Trims all white spaces from the left and returns the resulting string.

 

POSITION()

(SQL Server: CHARINDEX())

→ Takes two strings.

← Returns the position number at which the first string is present in the second string.

 

REPEAT()

(SQL Server: REPLICATE())

→ Takes a string and an integer (x).

← Returns a string that contains x string values (e.g. REPEAT('a', 3) returns 'aaa').

 

REPLACE()

→ Takes three strings.

← Returns the first string where the value of the second string is replaced by the third string (e.g. REPLACE('Hello world', 'Hello', 'Hi') returns 'Hi World').

* How to replace part of a string in MySQL

* How to replace part of a string in SQL

* How to replace part of a string in T-SQL

REVERSE()

→ Takes one string.

← Returns the reversed value of the string.

 

RIGHT()

→ Takes one string and one integer (x).

← Returns x characters from the right (e.g. RIGHT(5) returns the last 5 characters in the string).

 

RPAD()

(SQL Server equivalents available)

→ Takes a string, an integer, and another string.

← Pads the first string (starting from the right) with repetitions of the second string value to make the length equal to the integer.

 

RTRIM()

→ Takes one string.

← Trims all white spaces from the right and returns the resulting string.

 

SPLIT_PART()

(MySQL:  SUBSTRING_INDEX()

SQL Server: STRING_SPLIT())

→ Takes two strings and an integer.

← Splits the first string based on a separator provided in the second string and returns one part as indicated by the integer.

* How to split a string in MySQL

* How to split a string in Oracle

* How to split a string in PostgreSQL

* How to split a string in SQL Server

STRING_AGG()

(MySQL: GROUP_CONCAT())

→ Takes one column of a string type and one string.

← Returns all values from the column, separated by the string.

 

SUBSTRING()

→ Takes one string and two integers (x and y).

← Returns a substring consisting of the characters between the positions x and y.

* How to extract a substring from a string in Oracle or SQLite

* How to extract substrings in PostgreSQL and MySQL

* How to extract a substring from a string in T-SQL

* A complete guide to working with substrings in SQL

* The SQL substring function in 5 examples

TRANSLATE()

(Not available in MySQL)

→ Takes three strings.

← Returns the first string where each value from the 2nd string is replaced with each value from the 3rd string. TRANSLATE('Hello World', 'ol', 'ek') will replace each occurrence of 'o' with 'e' and each occurrence of 'l' with 'k', resulting in 'Hekke Werkd'.

 

 

TRIM()

→ Takes one string.

← Returns the string with leading and trailing white spaces removed.

* How to trim strings in SQL

UPPER()

→ Takes one string.

← Returns this string with all characters in upper case.

* How to convert a string to uppercase in SQL

SQL-String-Funktionen - Beispiele

In den folgenden Abschnitten finden Sie Beispiele für jede Funktion.

Verkettung mit ||

Dieser Operator nimmt zwei oder mehr Zeichenketten und gibt den konkatenierten Wert zurück.

SELECT 'Hello' || ' World' AS concatenated;
concatenated
Hello World

Beachten Sie, dass das Ergebnis gleich Null ist, wenn einer der Operanden Null ist:

concatenated
null

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

Vergleich mit <, >, <=, >=, =, <>, !=

Diese Operatoren vergleichen zwei Zeichenketten und geben einen booleschen Wert zurück. Ein boolescher Wert gibt Wahr (1) oder Falsch (0) an.

SELECT 'ABC' < 'XYZ' AS compare;
compare
1

Da ABC im Alphabet vor XYZ steht, wird dieser Ausdruck als True ausgewertet. In SQL werden Textwerte auf der Grundlage ihrer alphabetischen Reihenfolge ausgewertet. Sie können auch feststellen, ob Zeichenfolgenausdrücke übereinstimmen (oder nicht):

SELECT 'ABC' = 'XYZ' AS compare;
compare
0

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

LIKE

Dieser Operator nimmt eine Zeichenkette und eine Vorlage mit Regex, vergleicht sie und gibt einen booleschen Wert zurück. Wir werden drei Regex-Vorlagen verwenden:

  • A% bedeutet "beginnt mit A und hat eine beliebige Anzahl von Zeichen nach". Add ACT und AbE würden alle mit dieser Regex übereinstimmen.
  • A_C bedeutet "beginnt mit A, hat ein Zeichen und endet dann mit C". AAC abc , aDc und alC würden alle mit dieser Regex übereinstimmen.
  • %h bedeutet "endet mit h". With twenty-fifth und aah würden alle mit dieser Regex übereinstimmen.

Wichtig: Obwohl die meisten gängigen SQL-Dialekte Groß- und Kleinschreibung nicht berücksichtigen, wird bei Regex-Mustern zwischen Groß- und Kleinschreibung unterschieden; "A" und "a" sind zwei verschiedene Zeichen in Regex.

SELECT 'ABC' LIKE 'A%' AS compare;
compare
1
SELECT 'ABC' LIKE 'A_C' AS compare;
compare
1
SELECT 'Hello' LIKE '%H' AS compare;
compare
0

In diesem Artikel erfahren Sie, wie Sie LIKE in SQL verwenden können.

CONCAT()

Diese Funktion nimmt zwei oder mehr Zeichenketten, verkettet sie (d. h. kombiniert sie zu einer Zeichenkette) und gibt die resultierende Zeichenkette zurück.

SELECT CONCAT('Hello', ' World', '!') AS concat;
concat
Hello World!

Beachten Sie, dass diese Funktion - anders als der Operator || - Nullwerte ignoriert:

SELECT CONCAT('Hello', null, '!') AS concat;
concat
Hello!

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

CONCAT_WS()

Diese Funktion nimmt einen Trennungswert und zwei oder mehr Zeichenketten, verkettet sie mit dem Trennungswert dazwischen und gibt die resultierende Zeichenkette zurück.

SELECT CONCAT_WS('_','Hello', 'World') AS concat_ws;
concat_ws
Hello_World

Beachten Sie, dass diese Funktion im Gegensatz zum Operator || Nullwerte ignoriert.

SELECT CONCAT_WS('_','Hello', null, 'World') AS concat_ws;
concat_ws
Hello_World

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

LEFT()

Diese Funktion nimmt eine Zeichenkette und eine Ganzzahl. Sie gibt, beginnend am Anfang (links), so viele Zeichen zurück, wie die Ganzzahl angibt.

SELECT LEFT('Hello', 2) AS left;
left
He

LENGTH()

Diese Funktion nimmt eine Zeichenkette und gibt die Anzahl der Zeichen in dieser Zeichenkette zurück.

SELECT LENGTH('Hello') AS length;
length
5

Beachten Sie, dass SQL Server LEN() anstelle von LENGTH() verwendet.

In diesem Artikel erfahren Sie, wie Sie die Länge einer Zeichenkette in SQL überprüfen können.

LOWER()

Diese Funktion nimmt eine Zeichenkette und gibt diese Zeichenkette mit allen Zeichen in Kleinbuchstaben zurück.

SELECT LOWER('Hello') AS lower;
lower
hello

In diesem Artikel erfahren Sie, wie Sie eine Zeichenkette in SQL in Kleinbuchstaben um wandeln können.

LPAD()

Diese Funktion nimmt eine Zeichenkette, eine Ganzzahl und eine weitere Zeichenkette entgegen. Beginnend am Anfang (links) füllt sie den ersten String-Wert mit Wiederholungen des zweiten String-Wertes auf, so dass die Länge dem Integer-Wert entspricht.

SELECT LPAD('Hello', 9, 'ABC') AS lpad;
lpad
ABCAHello

Beachten Sie, dass SQL Server diese Funktion nicht anbietet. Sehen Sie sich einige Äquivalente an, die in SQL Server verfügbar sind.

LTRIM()

Diese Funktion nimmt eine Zeichenkette, schneidet alle Leerzeichen von der linken Seite ab und gibt die resultierende Zeichenkette zurück.

SELECT LTRIM('   Hello World   ') as ltrim;
ltrim
Hello World

Beachten Sie, dass alle Leerzeichen auf der rechten Seite der Zeichenkette nicht betroffen sind.

POSITION()

Diese Funktion nimmt zwei Zeichenketten und gibt die Positionsnummer zurück, an der die erste Zeichenkette in der zweiten Zeichenkette enthalten ist.

SELECT POSITION('Wo' IN 'Hello World') as position;
position
7

Beachten Sie, dass SQL Server CHARINDEX() anstelle von POSITION() verwendet.

REPEAT()

Diese Funktion nimmt eine Zeichenkette und eine ganze Zahl entgegen. Sie gibt eine Zeichenkette zurück, die so viele Wiederholungen der ersten Zeichenkette enthält, wie durch die Ganzzahl angegeben.

SELECT REPEAT('Hi', 3) as repeat;
repeat
HiHiHi

Beachten Sie, dass SQL Server REPLICATE() anstelle von REPEAT() verwendet.

REPLACE()

Diese Funktion nimmt drei Zeichenketten und gibt die erste Zeichenkette zurück, wobei der durch die zweite Zeichenkette angegebene Wert durch die dritte Zeichenkette ersetzt wird.

SELECT REPLACE('Hello World', 'Hello', 'Hi') as replace;
replace
Hi World

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

REVERSE()

Diese Funktion nimmt eine Zeichenkette und gibt den umgekehrten Wert der Zeichenkette zurück.

SELECT REVERSE('Hello') as reverse;
reverse
olleH

Diese Funktion nimmt eine Zeichenkette und eine ganze Zahl entgegen. Ausgehend vom Ende der Zeichenkette (rechts) gibt sie so viele Zeichen zurück, wie die Ganzzahl angibt.

right
lo

RPAD()

Diese Funktion benötigt eine Zeichenkette, eine ganze Zahl und eine weitere Zeichenkette. Ausgehend vom Ende der Zeichenkette (rechts) wird die erste Zeichenkette mit Wiederholungen der zweiten Zeichenkette aufgefüllt, so dass die Länge der Ganzzahl entspricht.

SELECT RPAD('Hello', 9, 'ABC') AS rpad;
rpad
HelloABCA

Beachten Sie, dass SQL Server diese Funktion nicht anbietet. Sehen Sie sich einige Äquivalente an, die in SQL Server verfügbar sind.

RTRIM()

Diese Funktion nimmt eine Zeichenkette, schneidet alle Leerzeichen am Ende ab und gibt die resultierende Zeichenkette zurück.

SELECT RTRIM('   Hello World   ') as rtrim;
rtrim
Hello World

Beachten Sie, dass alle Leerzeichen am Anfang (links) der Zeichenkette nicht betroffen sind.

SPLIT_PART()

Diese Funktion nimmt zwei Zeichenketten und eine Ganzzahl entgegen. Sie teilt die erste Zeichenkette auf der Grundlage des in der zweiten Zeichenkette angegebenen Trennzeichens auf und gibt den durch die Ganzzahl angegebenen Teil zurück. Der folgende Code teilt 'Hello World' durch das Leerzeichen und gibt den ersten Teil der geteilten Zeichenkette zurück:

SELECT SPLIT_PART('Hello World', ' ', 1) AS part;
part
Hello

Wir machen das Gleiche, aber diesmal ändern wir die Ganzzahl in 2. Das gibt den zweiten Teil der Zeichenkette zurück:

SELECT SPLIT_PART('Hello World', ' ', 2) AS part;
part
World

Beachten Sie, dass MySQL SUBSTRING_INDEX() anstelle von SPLIT_PART() verwendet.

Beachten Sie, dass SQL Server STRING_SPLIT() anstelle von SPLIT_PART() verwendet.

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

STRING_AGG()

Diese Funktion nimmt eine Spalte vom Typ String und einen String an. Sie gibt die Verkettung aller Werte der Spalte zurück, wobei jeder Wert durch die Zeichenkette von den anderen getrennt ist. Dies ist eine Aggregatfunktion, die mit GROUP BY verwendet werden kann.

Dies ist die Obsttabelle, die wir in diesem Beispiel verwenden werden:

nameamount
Apple1
Kiwi2
Banana3
SELECT STRING_AGG(name, ';') AS string_agg
FROM fruits;
string_agg
Apple;Kiwi;Banana

Beachten Sie, dass MySQL GROUP_CONCAT() anstelle von STRING_AGG() verwendet.

SUBSTRING()

Diese Funktion nimmt eine Zeichenkette und zwei ganze Zahlen. Sie gibt eine Teilzeichenkette zurück, die aus den Zeichen zwischen den durch die ganzen Zahlen angegebenen Positionen besteht.

SELECT SUBSTRING('Hello World', 2, 5) AS substring;
substring
ello

Lesen Sie diese Artikel, um mehr darüber zu erfahren:

TRANSLATE()

Diese Funktion nimmt drei Zeichenketten entgegen und gibt die erste Zeichenkette zurück, wobei die in der zweiten Zeichenkette angegebenen Werte durch die in der dritten Zeichenkette angegebenen Werte ersetzt werden.

SELECT TRANSLATE('Hello World', 'Ho', 'he') as translate;

In diesem Beispiel wird eine gegebene Zeichenkette genommen und H durch h und o durch e ersetzt.

translate
helle Werld
SELECT TRANSLATE('abc def', 'ad', 'xy') as translate;

Das obige Beispiel nimmt einen gegebenen String-Wert und ersetzt a durch x und d durch y.

translate
xbc yef

Beachten Sie, dass MySQL diese Funktion nicht anbietet. Sehen Sie sich einige in MySQL verfügbare Äquivalente an.

TRIM()

Diese Funktion nimmt eine Zeichenkette und gibt die Zeichenkette zurück, wobei führende und nachfolgende Leerzeichen entfernt werden.

SELECT TRIM('   Hello World   ') AS trim;
trim
Hello World

Lesen Sie diesen Artikel, um zu erfahren , wie man Strings in SQL trimmt.

UPPER()

Diese Funktion nimmt eine Zeichenkette entgegen und gibt diese Zeichenkette mit allen Zeichen in Großbuchstaben zurück.

SELECT UPPER('Hello') AS upper;
upper
HELLO

In diesem Artikel erfahren Sie, wie Sie eine Zeichenkette in SQL in Großbuchstaben umwandeln können.

Weitere SQL-Funktionen

SQL bietet viele verschiedene Funktionen - numerische Funktionen, Aggregatfunktionen, Stringfunktionen, Datums- und Zeitfunktionen und vieles mehr. Weitere Informationen zu diesen Funktionen finden Sie in unserem SQL-Kochbuch und in unseren Blogartikeln.

Sehen Sie sich auch dieses kostenlose Standard-SQL-Funktionen Cheat Sheet an. Sie können es herunterladen, ausdrucken und bei der Arbeit und beim Lernen immer zur Hand haben. Und noch einmal: Wir empfehlen Ihnen, unseren Kurs auf Standard-SQL-Funktionen zu besuchen, wenn Sie wirklich praktische Erfahrungen sammeln möchten. Viel Spaß beim Lernen!