Zurück zur Artikelliste Artikel
7 Leseminuten

Ein Überblick über die SQL-Textfunktionen

In diesem Artikel besprechen wir die wichtigsten SQL-Textfunktionen, die es Ihnen ermöglichen, String-Werte zu finden und zu bearbeiten.

Bevor wir uns mit den Textfunktionen beschäftigen, sollten wir kurz rekapitulieren, was eine SQL-Funktion ist. Einfach ausgedrückt, ist eine Funktion ein vordefiniertes, integriertes Codestück, das Sie in Ihrer SQL-Abfrage verwenden können. Die Funktionen SUM(), AVG() und COUNT() werden zum Beispiel auf numerische Variablen angewandt, um die Summe, den Durchschnitt bzw. die Anzahl der Datensätze zu berechnen.

Wir verwenden die folgende OrderDetails Tabelle aus der bekannten Northwind-Datenbank, um zu zeigen, wie die Funktion SUM() funktioniert.

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140
518104432812

Das Ziel ist es, die Gesamtzahl der bestellten Quantity für alle 518 Bestellungen zu ermitteln.

ABFRAGE:

SELECT SUM(Quantity) AS Total_Ordered_Quantity
FROM OrderDetails

ERGEBNIS:

Anzahl der Datensätze: 1

Total_Ordered_Quantity
12743

Im obigen Beispiel wurde die Funktion SUM() verwendet, um die Summe aller bestellten Mengen zu berechnen. Das/die Argument(e) (oder Parameter) der Funktion wird/werden innerhalb der Klammern definiert. Nach der SQL-Syntax sind Klammern auch dann erforderlich, wenn keine Parameter an die Funktion übergeben werden.

Textfunktionen in SQL

Datenbanken verfügen über viele verschiedene integrierte Funktionen. Daher ist es wichtig, die am häufigsten verwendeten Funktionen zu kennen, damit Sie Abfragen effektiv und effizient schreiben können, ohne Ihre eigenen benutzerdefinierten Funktionen von Grund auf neu erstellen zu müssen. LearnSQL.de's Standard-SQL-Funktionen werden alle gängigen Text-, numerischen, Datums- und Zeit- sowie Aggregatfunktionen anhand von detaillierten praktischen Beispielen, Walkthroughs und Übungen behandelt.

In diesem Artikel werden wir uns einige der am häufigsten verwendeten SQL-Textfunktionen ansehen . Diese arbeiten mit Textdatentypen wie VARCHAR, CHAR und TEXT.

Beachten Sie, dass verschiedene Datenbanken unterschiedliche integrierte Funktionen haben. In diesem Artikel werden wir uns nur auf die Standard-SQL-Funktionen konzentrieren, die für die meisten SQL-kompatiblen Datenbanken funktionieren. (Einzelheiten finden Sie in der Dokumentation Ihrer Datenbank.) Für die unten aufgeführten Beispiele verwenden wir die Customers Tabelle aus der gleichen Northwind-Datenbank.

CustomerIDCustomerNameContactNameAddressCityPostal Code
1102481112
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DP

CHAR_LENGTH()

Die Funktion CHAR_LENGTH() gibt die Anzahl der Zeichen in einer Zeichenkette zurück. Diese Funktion wird nur selten allein verwendet; man findet sie meist in Verbindung mit anderen Funktionen.

Wenn die eingegebene Zeichenkette leer ist, gibt CHAR_LENGTH() 0 zurück. Ist die Eingabezeichenkette NULL, gibt die Funktion NULL zurück. Die Syntax ist recht einfach - setzen Sie einfach den entsprechenden Spaltennamen in die Klammern.

Im folgenden Beispiel berechnen wir die Länge der Zeichenkette für jeden Datensatz in der Spalte CustomerName der Tabelle Customers Tabelle.

ABFRAGE:

ABFRAGE:

SELECT CHAR_LENGTH(CustomerName) 
FROM Customers;

ERGEBNIS:

Anzahl der Datensätze: 91

19
34
23
15

Beachten Sie, dass in den oben gezeigten Ergebnissen die Länge der Zeichenkette die Leerzeichen zwischen den Wörtern (d. h. zwischen dem ersten, mittleren und letzten Namen) einschließt.

UPPER() und LOWER()

Die Funktionen UPPER() und LOWER() konvertieren jeden Buchstaben innerhalb einer definierten Zeichenkette in Groß- oder Kleinbuchstaben. Diese Textfunktionen werden häufig zur Datenbereinigung oder zur Vorbereitung von Daten für nachfolgende Schritte verwendet. Die Funktion REPLACE() unterscheidet beispielsweise zwischen Groß- und Kleinschreibung, so dass Sie alle Zeichenketten in die gleiche Groß- und Kleinschreibung konvertieren müssen wie den Kriterientext, damit REPLACE() funktioniert.

Die allgemeine Syntax beider Funktionen ist recht einfach; auch hier steht der Spaltenname innerhalb der Klammern. Versuchen wir, alle Datensätze in der Spalte Stadt in Großbuchstaben zu konvertieren.

ABFRAGE:

SELECT UPPER(City) as CITY 
FROM Customers;

ERGEBNIS:

Anzahl der Datensätze: 91

CITY
BERLIN
MEXICO D.F.
MEXICO D.F.
LONDON

Die Syntax und Anwendung von LOWER() ist genau dieselbe wie UPPER().

Wenn ein gegebener Wert NULL ist, gibt die Funktion schließlich NULL zurück.

SUBSTRING()

Die Funktion SUBSTRING() extrahiert eine Teilzeichenkette (d.h. einen Teil einer Zeichenkette) innerhalb einer Zeichenkette. Sie beginnt an einer bestimmten Stelle und extrahiert eine Teilzeichenkette mit einer bestimmten Länge.

Die allgemeine Syntax der Funktion SUBSTRING() lautet:

SUBSTRING(string, start, length)
  • Die Zeichenkette.
  • Die Position (die erste Position ist 1), an der die Extraktion beginnen soll.
  • Die Länge (d.h. die Anzahl der Zeichen), die zurückgegeben werden soll.

Beachten Sie, dass alle Parameter obligatorisch sind.

Wenn entweder der Parameter position oder length NULL ist, wird NULL zurückgegeben. Ist der Startparameter größer als die Länge der Zeichenkette (z.B. die Zeichenkette ist "APPLE" und der Startparameter ist 10), gibt die Funktion eine Zeichenkette mit der Länge Null zurück. Wenn der Parameterlength einen negativen Wert hat, erhalten Sie eine Fehlermeldung und die Abfrage wird nicht ausgeführt. Wenn die Summe der Parameter length und start größer ist als die Länge der Zeichenfolge, gibt die Funktion die gesamte Zeichenfolge zurück.

Schauen wir uns ein Beispiel an, bei dem wir die ersten 5 Zeichen jedes Datensatzes in der Spalte CustomerName extrahieren:

ABFRAGE:

SELECT SUBSTRING(CustomerName, 1, 5) AS ExtractName
FROM Customers

ERGEBNIS:

Anzahl der Datensätze: 91

ExtractName
Alfre
Ana T
Anton
Aroun

ERSETZEN()

Die Funktion REPLACE() findet und ersetzt alle Vorkommen einer Teilzeichenkette (innerhalb einer gegebenen Zeichenkette) durch eine neue Teilzeichenkette. Beachten Sie, dass der Suchteil der Funktion zwischen Groß- und Kleinschreibung unterscheidet.

Die allgemeine Syntax der Funktion REPLACE() lautet ...

REPLACE(string, old_string, new_string)

... wobei string die zu suchende Zeichenkette (oder der Spaltenname), old_string die zu ersetzende Zeichenmenge und new_string die Ersetzung ist.

Sehen wir uns ein Beispiel an, das die Abkürzung "Str" durch "Street" in der Spalte Address ersetzt.

ABFRAGE:

SELECT REPLACE(Address, 'Str.', 'Street') as Address 
FROM Customers;

ERGEBNIS:

Anzahl der Datensätze: 91

Address
Obere Street 57
Avda. de la Constitución 2222
Mataderos 2312
120 Hanover Sq.

Im obigen Beispiel ersetzen wir die alte Zeichenfolge"Str." durch die neue Zeichenfolge"Street" in der Spalte Address. Ersetzungen wie diese werden häufig bei der Datenbereinigung vorgenommen, um die Daten für spätere Analysen konsistenter zu machen.

Wenn der Parameter "new_string" NULL ist, gibt REPLACE() ebenfalls NULL zurück. Wenn der Parameter old_string nicht gefunden wird, wird nichts ersetzt; die Zeichenkette wird in ihrer ursprünglichen Form zurückgegeben, ohne Ersetzung.

TRIM()

Die Funktion TRIM() entfernt führende und nachfolgende Leerzeichen (oder andere Zeichen, die Sie als optionalen Parameter angeben) vom Anfang und/oder Ende einer Zeichenkette. Sie wird in der Regel verwendet, um unnötige Zeichen oder Leerzeichen aus einem Datensatz vor der Analyse zu entfernen.

Die allgemeine Syntax der Funktion TRIM() lautet:

TRIM([‘TrimCharacters’ FROM] string)

Hier sind TrimCharacters (der optionale Parameter) die Zeichen, die aus der Zeichenkette entfernt werden sollen. Wird dieser Parameter nicht angegeben, entfernt SQL nachgestellte und führende Leerzeichen aus der Zeichenfolge.

Im folgenden Beispiel wenden wir die Funktion TRIM() auf die Spalte Address an. In diesem Datensatz sind die Einträge bereits recht sauber. Aber sehen wir uns doch einmal an, wie die Funktion TRIM() funktioniert, wenn wir angeben, dass alle numerischen Ziffern abgeschnitten werden sollen.

ABFRAGE:

SELECT TRIM('0123456789' FROM Address) As Trimmed_Address 
From Customers

ERGEBNIS:

Anzahl der Datensätze: 91

Trimmed_Address
Obere Str.
Avda. de la Constitución
Mataderos
Hanover Sq.

Wir können sehen, dass alle Ziffern sowohl am Anfang als auch am Ende jeder Adresse abgeschnitten worden sind. Jedes der in der Funktion TRIM() innerhalb von TrimCharacters angegebenen Zeichen wird einzeln behandelt und abgeschnitten. Sobald die definierten Zeichen abgeschnitten sind, werden auch die führenden und nachfolgenden Leerzeichen abgeschnitten. So wird zum Beispiel bei Hanover Square '120 ' vom führenden Ende abgeschnitten, während bei Avda. De la Constitución wird '2222' am hinteren Ende abgeschnitten.

Die Funktion TRIM() ist eine gute Möglichkeit, die Funktionen LTRIM() und RTRIM() zu kombinieren, die jeweils führende und nachfolgende Leerzeichen entfernen. Eine ausführliche Beschreibung finden Sie unter Entfernen von führenden und/oder nachfolgenden Leerzeichen aus einer Zeichenkette in T-SQL (How to Remove Leading and/or Trailing Spaces From a String in T-SQL).

SQL-Textfunktionen für die Arbeit nutzen

Ich hoffe, diese Beispiele für häufig verwendete SQL-Textfunktionen haben Ihnen geholfen, sie zu verstehen. Datenanalysten und -entwickler verwenden Textfunktionen häufig, und die Beherrschung dieser Funktionen ist ein wichtiger Bestandteil ihres SQL-Repertoires.

Der beste Weg, SQL-Funktionen zu beherrschen, ist die Praxis! Ich ermutige Sie, anhand von praktischen Beispielen zu lernen, wie sie in unserem Standard-SQL-Funktionen Kurs. Wenn Sie sich auf die PostgreSQL- und T-SQL-Dialekte spezialisieren möchten, schauen Sie sich unsere Kurse Common Functions in PostgreSQL und Common Functions in MS SQL Server an.