Es gibt eine Reihe von Operationen mit Zeichenketten.
Sie benötigen die Demo-Daten für das SQL-Tutorial.
Starten Sie das Query Tool SQL Studio als Datenbankadministrator MONA mit dem Kennwort RED und melden Sie sich an die Demo-Datenbankinstanz DEMODB an.
CHAR-Spalten können mit dem Operator & verkettet werden.
SELECT name & ', '
& firstname name, zip
FROM hotel.customer
WHERE cno < 3500
Nachname und Vorname sollen gemeinsam ausgegeben werden.
Ergebnis
NAME |
ZIP |
Porter, Jenny |
10580 |
Brown, Peter |
48226 |
? |
90019 |
Brian, Rose |
75243 |
Griffith, Mary |
20005 |
Siehe auch:
SQL-Referenzhandbuch, Verkettung
(concatenation)
Für das Entfernen und Einfügen von Zeichen stehen die Funktionen TRIM, LTRIM und RTRIM zur Verfügung.
SELECT
RTRIM(title,'any') title, name
FROM hotel.customer
WHERE title = 'Company'
Angabe eines verkürzten Firmentitels
Ergebnis
TITLE |
NAME |
Comp |
Datasoft |
Comp |
TOOLware |
Siehe auch:
SQL-Referenzhandbuch, TRIM(x,y),
LTRIM(x,y),
RTRIM(x,y)
SELECT title,
SUBSTR(firstname,1,1)& '. '&name name
FROM hotel.customer
WHERE firstname IS NOT NULL
Angabe eines verkürzten Vornamens, der mit dem Nachnamen verkettet wird
Ergebnis
TITLE |
NAME |
Mrs |
J. Porter |
Mr |
P. Brown |
Mrs |
R. Brian |
Mrs |
M. Griffith |
Mr |
M. Randolph |
Mrs |
S. Smith |
Mr |
M. Jackson |
Mrs |
R. Doe |
Mr |
G. Howe |
Mr |
F. Miller |
Mrs |
S. Baker |
Mr |
J. Peters |
Mr |
A. Jenkins |
Siehe auch:
SQL-Referenzhandbuch, SUBSTR(x,a,b)
Mit den Funktionen LFILL bzw. RFILL können Werte vom Typ CHAR auf eine vorgegebene Länge mit einem beliebig wählbaren Zeichen aufgefüllt werden.
SELECT LFILL(firstname,'
',10) firstname, name
FROM hotel.customer
WHERE firstname IS NOT NULL AND title =
'Mrs'
Angabe eines nach Rechts verschobenen Vornamens, insgesamt sollen Vorname und Leerzeichen eine Zeichenkette der Länge 10 ergeben
Ergebnis
FIRSTNAME |
NAME |
Jenny |
Porter |
Rose |
Brian |
Mary |
Griffith |
Sally |
Smith |
Rita |
Doe |
Susan |
Baker |
Siehe auch:
SQL-Referenzhandbuch, LFILL(x,a,n),
RFILL(x,a,n)
EXPAND(x,n)erweitert eine Zeichenkette um eine angegebene Zahl von
Leerzeichen.
Die Funktion REPLACE ersetzt in der angegebenen Spalte einer Zeichenkette durch eine andere.
SELECT hno, zip,
REPLACE(address,'St.','Street')
address
FROM hotel.hotel
WHERE zip < '40000'
Angabe der Adresse nicht mit der Abkürzung Str., sondern mit Street
Ergebnis
HNO |
ZIP |
ADDRESS |
10 |
20005 |
155 Beechwood Street |
20 |
11788 |
1499 Grove Street |
30 |
20037 |
477 17th Avenue |
40 |
10019 |
112 8th Avenue |
70 |
12203 |
65 Yellowstone Dr. |
80 |
10019 |
12 Barnard Street |
90 |
33575 |
200 Yellowstone Dr. |
100 |
32018 |
1980 34th Street |
110 |
33441 |
111 78th Street |
Die Funktion TRANSLATE ersetzt in der angegebenen Spalte einzelne Buchstaben durch andere Buchstaben. Dabei wird bei jedem Auftreten der i-te Buchstabe der ersten Zeichenkette durch den i-ten Buchstaben der zweiten Zeichenkette ersetzt.
SELECT name,
TRANSLATE(name,'ae','xy')
name_new
FROM hotel.customer
WHERE cno > 4000
Die Buchstaben a und e sollen durch x und y ersetzt werden.
Ergebnis
NAME |
NAME_NEW |
Baker |
Bxkyr |
Peters |
Pytyrs |
TOOLware |
TOOLwxry |
Jenkins |
Jynkins |
Siehe auch:
SQL-Referenzhandbuch, REPLACE(x,y,z),
TRANSLATE(x,y,z)
Weitere Beispiele zur Datenanfrage