Funktionen

DATE

DATE(<expression-1> [ , <expression-2> ] )

Umwandeln einer Varchar-Ausdrucks in ein Datumsformat

Der 2. Varchar-Ausdruck gibt das Format an (siehe Java 8 SimpleDateFormat).

Nur der Datumsanteil wird verwendet.

Das Ergebnis hat den Datentyp DATE.

Beim Excel-Treiber ist es derzeit bei Datums-Feldern nicht möglich. Die Umrechnung muss nachdem die Daten als Number oder String geladen wurden mit folgender Formel erfolgen: Datum vom 1.1.1900 - 2 + die Datumszahl aus Excel. Beispiel:

DATE '1900-01-01' - 1 - CASE WHEN datum_aus_excel > 58 THEN 1 ELSE 0 END + datum_aus_excel

Der 1.1.1900 entspricht der Datumszahl 1. Bei Excel ist der 29.2.1900 ein Schalttag (um kompatibel mit Lotus 1-2-3 zu sein). Deshalb muss noch ein Tag abgezogen werden, wenn das Datum hinter dem 28.2.1900 liegt.

Beispiel

SELECT DATE('20211224', 'YYYYMMDD'), DATE('24.12.2021 18:30:10', 'DD.MM.YYYY HH:mm:ss');

Ausgabe

column_1 column_2
-------- --------
2021-01-04 2021-01-04

LTRIM

LTRIM(<expression-1> [ , <expression-2> ] )

Löschen von führenden Zeichen im 1. Varchar-Ausdruck.

Der 2. Varchar-Ausdruck ist optional und gibt einen Satz von Zeichen an, die gelöscht werden sollen. Wenn nicht angegeben, dann wird der Satz auf Leerzeichen beschränkt.

Löscht am Anfang des ersten Ausdrucks alle Zeichen, die in diesem Satz sind, bis zum ersten Zeichen außerhalb des Satzes.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT LTRIM('   das bleibt'), LTRIM('!"$% &%$das bleibt', ' !"$%&');

Ausgabe

column_1 column_2
-------- --------
das bleibt das bleibt

RTRIM

RTRIM(<expression-1> [ , <expression-2> ] )

Löschen von endenden Zeichen im 1. Varchar-Ausdruck.

Der 2. Varchar-Ausdruck ist optional und gibt einen Satz von Zeichen an, die gelöscht werden sollen. Wenn nicht angegeben, dann wird der Satz auf Leerzeichen beschränkt.

Löscht am Ende des ersten Ausdrucks alle Zeichen, die in diesem Satz sind, bis zum ersten Zeichen außerhalb des Satzes.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT RTRIM('das bleibt    '), RTRIM('das bleibt!"$% &%$', ' !"$%&');

Ausgabe

column_1 column_2
-------- --------
das bleibt das bleibt

TRIM

TRIM(<expression>)

Löschen von führenden und endenden "Whitespaces" Zeichen im Varchar-Ausdruck.

Die Funtion verwendet die java Funktion trim (siehe Java 8 trim).

Dabei werden alle zeichen im Ascii Code kleiner oder gleich Leerzeichen als Whitespace angesehen.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT TRIM('  das bleibt    '), TRIM(CHR(9) || ' das bleibt  ' || CHR(13) || CHR(10));

Ausgabe

column_1 column_2
-------- --------
das bleibt das bleibt

LOWER

LOWER(<expression>)

Alle Zeichen im Varchar-Ausdruck in Kleinbuchstaben umwandeln.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT LOWER('Aa123'), lower('GeMiScHt');

Ausgabe

column_1 column_2
-------- --------
aa123 gemischt

UPPER

UPPER(<expression>)

Alle Zeichen im Varchar-Ausdruck in Großbuchstaben umwandeln.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT Upper('Aa123'), UPPER('GeMiScHt');

Ausgabe

column_1 column_2
-------- --------
AA123 GEMISCHT

BIGINT

BIGINT(<expression>)

Umwandeln des Varchar-Ausdruck in einen numerischen Wert.

Verwendet java Long.valueOf() und wirf einen Laufzeitfehler, wenn der String nicht dem Nummerformat entspricht.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT 1*'123';

Ausgabe

Implicit Conversion not yet implemented
SELECT 1*BIGINT('123');

Ausgabe

column_1
--------
123
SELECT 1*BIGINT('A123');

Ausgabe

java.lang.NumberFormatException: For input string: "A123"

ASCII

ASCII(<expression>)

Das erste Zeichen im Varchar-Ausdruck in den ASCII-Wert umwandeln.

Das Ergebnis hat den Datentyp BIGINT.

Beispiel

SELECT ASCII('A'), ascii('ABC');

Ausgabe

column_1 column_2
-------- --------
65 65

LENGTH

LENGTH(<expression>)

Die Länge einses Varchar-Ausdrucks ermitteln.

Das Ergebnis hat den Datentyp BIGINT.

Beispiel

SELECT LENGTH('A'), lengTH('ABC');

Ausgabe

column_1 column_2
-------- --------
1 3

CHR

CHR(<expression>)

Umwandeln des numerischen Ausdrucks in das dazugehörige ASCII-Zeichen

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT CHR(65), chr(35);

Ausgabe

column_1 column_2
-------- --------
A #

LPAD

LPAD(<expression-1>, <expression-2> [ , <expression-3> ])

Den 1. Varchar-Ausdruck links mit dem 3. Varchar-Ausdruck auffüllen, bis die Länge des 2. Bigint-Ausdruck erreicht ist.

Der 3. Varchar-Ausdruck ist optional. Wird er nicht angegeben, so wird mit Leerzeichen aufgefüllt.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT LPAD('x', 10), LPAD('x', 10, '1'), LPAD('xy', 10, 'abc'), lPad('xxxxxxxxxx', 10, '1');

Ausgabe

column_1 column_2 column_3 column_4
-------- -------- -------- --------
         x 111111111x abcabcabxy xxxxxxxxxx

Im 3. Beispiel wird erst der 3. Ausdruck so oft eingefügt, wie er komplett reinpasst. Danach werden rechts die Zeichen abgeschnitten, die nicht mehr als Ergänzung reinpassen

RPAD

RPAD(<expression-1>, <expression-2> [ , <expression-3> ])

Den 1. Varchar-Ausdruck rechts mit dem 3. Varchar-Ausdruck auffüllen, bis die Länge des 2. Bigint-Ausdruck erreicht ist.

Der 3. Varchar-Ausdruck ist optional. Wird er nicht angegeben, so wird mit Leerzeichen aufgefüllt.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT RPAD('x', 10), RPAD('x', 10, '1'), RPAD('xy', 10, 'abc'), rPad('xxxxxxxxxx', 10, '1');

Ausgabe

column_1 column_2 column_3 column_4
-------- -------- -------- --------
x          x111111111 xyabcabcab xxxxxxxxxx

Im 3. Beispiel wird erst der 3. Ausdruck so oft eingefügt, wie er komplett reinpasst. Danach werden rechts die Zeichen abgeschnitten, die nicht mehr als Ergänzung reinpassen

SUBSTR

SUBSTR(<expression-1>, <expression-2> [ , <expression-3> ])

Ausgabe von Teilen des 1. Varchar-Ausdrucks.

Der 2. Bigint-Ausdruck gibt die Startposition (beginnend mit 1) und der optionale 3. Bigint-Ausdruck die Länge. Der 3. Bigint-Ausdruck ist optional. Wird er nicht angegeben, dann wird der Rest ab der Startposition genommen. Ist er länger als die verbleibende Länge , dann wird auch der Rest ab der Startposition zurückgegeben.

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT SUBSTR('12345678', 4), substr('12345678', 2, 4), SUBSTR('12345678', 8, 4);

Ausgabe

column_1 column_2 column_3
-------- -------- --------
45678    2345     8
SELECT SUBSTR('12345678', 9);

Ausgabe

[position=1:27] Index out of bounds

INSTR

INSTR(<expression-1>, <expression-2> [ , <expression-3> [ , <expression-4> ] ])

Sucht im 1. Varchar-Ausdrucks den 2. Varchar-Ausdruck.

Wenn der 3. Bigint-Ausdruck angegeben wurde, dann beginnt die Suche ab der entsprechenden Position. Der zusätzliche 4. Bigint-Ausdruck gibt an, das wievielte Auftreten vom 2. Varchar Ausdruck gesucht werden soll.

Ist die Suche nicht erfolgreich, dann wird der Wert 0 zurückgegeben.

Das Ergebnis hat den Datentyp Bigint.

Beispiel

SELECT instr('12341234', '1'), INSTR('12341234', '21'), INSTR('12341234', '1', 6), INSTR('12341234', '1', 1, 2);

Ausgabe

column_1 column_2 column_3 column_4
-------- -------- -------- --------
1        0        0        5

REPLACE

REPLACE(<expression-1>, <expression-2>, <expression-3>)

Im 1. Varchar-Ausdruck Austauschen alle Auftreten vom 2. Varchar-Ausdruck durch den 3. Varchar-Ausdruck.

Die Funtion verwendet die java Funktion replace (siehe Java 8 replace).

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT REPLACE('AAAdas bleibtAAAAA', 'A', 'B'), REPLACE('AAAdas bleibtAAAAA', 'B', ''), REPLACE('AAA', 'A', '');

Ausgabe

column_1 column_2 column_3
-------- -------- --------
BBBdas bleibtBBBBB AAAdas bleibtAAAAA

REGEXP_REPLACE

REGEXP_REPLACE(<expression-1>, <expression-2>, <expression-3>)

Im 1. Varchar-Ausdruck werden alle Treffer des regulären Ausdrucks gegeben im 2. Varchar-Ausdruck durch den 3. Varchar-Ausdruck ausgetauscht.

Die Funtion verwendet die java Funktion replace (siehe Java 8 replaceAll).

Das Ergebnis hat den Datentyp VARCHAR.

Beispiel

SELECT REGEXP_REPLACE('AAAdas bleibtBUHZ', '[A-Z]', 'B'), REGEXP_REPLACE('AAAdas bleibtAAAAA', 'B', ''), REGEXP_REPLACE('AAA', '.', '');

Ausgabe

column_1 column_2 column_3
-------- -------- --------
BBBdas bleibtBBBB AAAdas bleibtAAAAA