Skalarfunktionen in SQL (Funktionen für Zahlen und Zeichenketten)

Es existieren zwei Arten von SQL Funktionen: Aggregatfunktionen und Skalarfunktionen.

Bei einer Aggregatfunktion werden alle Werte einer Spalte zusammengefasst und es wird ein Wert als Resultset ausgegeben. Siehe auch meinen Beitrag über Aggregatfunktionen: https://www.dateneule.de/2019/04/29/aggregatfunktionen-in-sql/

Eine Skalarfunktion liefert im Gegensatz dazu zu jedem Einzelwert einer Zeile einen Ausgabewert im Resultset zurück (Einzelzeilenfunktion).

SQL bietet verschiedene integrierte Skalarfunktionen. In diesen Beitrag gehe ich auf die wichtigsten Funktionen für Zahlen und Zeichenketten ein. Im nächsten Beitrag folgen Funktionen zu Datums- und Zeitwerten.

  • Numerische Funktionen:

Numerische Funktionen werden genutzt um Zahlen zu konvertieren, z. B.:

TRUNCATE(column_name, decimals): schneidet den Dezimalanteil nach der angegebenen Dezimalstelle ab.

ROUND(column_name, decimals): Gibt den Eingabewert gerundet auf die angegebenen Dezimalstellen zurück (ist keine Dezimalstelle angegeben, wird 0 angenommen).

SELECT rental_rate, TRUNCATE(rental_rate,1), ROUND(rental_rate,1), ROUND(rental_rate) FROM film

CEILING(column_name): Gibt die kleinste ganze Zahl größer oder gleich des Eingabewertes zurück.

FLOOR(column_name): Gibt die größte ganze Zahl kleiner oder gleich des Eingabewertes zurück.

SELECT rental_rate, ceiling(rental_rate), FLOOR(rental_rate) FROM film

  • Funktionen für Zeichenketten:

Die folgenden Skalarfunktionen verarbeiten Zeichenketten/Strings:

CONCAT(string1, string2, …., string_n): Verknüpft die angegebenen Strings.

Verbinden wir z. B. den Vor- und Nachnamen der Schauspieler aus der Tabelle ACTOR:

SELECT first_name, last_name, CONCAT(first_name,“ „,last_name) FROM actor

Beachte, dass zwischen die beiden Strings noch ein Leerzeichen-String gesetzt wird.

SUBSTRING(string , start_positon, length): gibt nur einen Teil eines Strings aus. Der Teilstring beginnt an der Position start_position und übernimmt so viele Zeichen wie unter length angegeben sind. Wenn der Parameter length nicht angegeben ist, wird alles bis zum Ende des Ausgangsstrings ausgegeben.

SELECT first_name, substring(first_name, 1,1), substring(first_name, 2) FROM actor

Kombination von CONCAT und SUBSTRING:

Wir möchten z.B. den ersten Buchstaben vom Vornamen vor den Nachnamen der Schauspieler setzen und ausgeben:

SELECT first_name, last_name, concat(substring(first_name, 1,1),‘. ‚,last_name) FROM actor

Weitere Funktionen für Zeichenketten sind:

CHAR_LENGTH(string): Gibt die Länge eines Strings aus.

UPPER(string): konvertiert den gegebenen String zu Großbuchstaben.

 LOWER(string): konvertiert den gegebenen String zu Kleinbuchstaben.

SELECT last_name, char_length(last_name), upper(last_name), lower(last_name) FROM actor

REVERSE(string): Dreht die Reihenfolge der Buchstaben einer Zeichenkette um.

REPLACE(string, old_substring, new_substring): ersetzt einen Teil einer Zeichenkette durch eine andere Zeichenkette.

INSTR(string, substring): gibt die Position einer Zeichenkette innerhalb eines Strings an. Beachte: Es wird immer die Position der ersten Übereinstimmung ausgegeben und die Suche ist case-insensitive (Groß- und Kleinschreibung wird nicht beachtet).

SELECT last_name, REVERSE(last_name), REPLACE(last_name,’A‘,’AA‘), INSTR(last_name,’A‘) FROM actor

(Visited 2.787 times, 1 visits today)

Schreibe einen Kommentar

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