19th Jun 2024 13 Leseminuten SQL-String-Funktionen: Ein vollständiger Überblick Martyna Sławińska SQL-Stringfunktionen Stringmanipulation Inhaltsverzeichnis Liste der SQL-String-Funktionen SQL-String-Funktionen - Beispiele Verkettung mit || Vergleich mit <, >, <=, >=, =, <>, != LIKE CONCAT() CONCAT_WS() LEFT() LENGTH() LOWER() LPAD() LTRIM() POSITION() REPEAT() REPLACE() REVERSE() RIGHT() RPAD() RTRIM() SPLIT_PART() STRING_AGG() SUBSTRING() TRANSLATE() TRIM() UPPER() Weitere SQL-Funktionen 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: Wie man Strings in SQL verkettet. Verkettung von Strings und NULL-Werten in SQL Server. 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: Wie man zwei Zeichenketten in SQL vergleicht. Wie man Strings in SQL alphabetisch ordnet. 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: Verkettung von Zeichenketten in SQL. Verkettung von Strings und NULL-Werten in SQL Server. 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: Verkettung von Zeichenketten in SQL. Verkettung von Strings und NULL-Werten in SQL Server. 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: Wie ersetzt man einen Teil einer Zeichenkette in MySQL? Wie man einen Teil einer Zeichenkette in SQL ersetzt. Wie man einen Teil einer Zeichenkette in T-SQL ersetzt. REVERSE() Diese Funktion nimmt eine Zeichenkette und gibt den umgekehrten Wert der Zeichenkette zurück. SELECT REVERSE('Hello') as reverse; reverse olleH RIGHT() 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: Wie man eine Zeichenkette in MySQL aufteilt. Wie man eine Zeichenkette in Oracle auf teilt. Wie man eine Zeichenkette in PostgreSQL auf teilt. Wie man eine Zeichenkette in SQL Server auf teilt. 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: Wie man eine Teilzeichenkette aus einer Zeichenkette in Oracle oder SQLite extrahiert. Wie man Teilstrings in PostgreSQL und MySQL extrahiert. Wie man eine Teilzeichenkette aus einer Zeichenkette in T-SQL extrahiert. Ein kompletter Leitfaden für die Arbeit mit Teilstrings in SQL. Die SQL-Substring-Funktion in 5 Beispielen. 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! Tags: SQL-Stringfunktionen Stringmanipulation