Hilfsfunktionen
Skalare Hilfsfunktionen
Die folgenden Funktionen lassen sich schwer einzelnen Funktionstypen zuordnen und sind allgemein nützlich.
| Name | Beschreibung |
|---|---|
alias(column) |
Gibt den Namen der Spalte zurück. |
can_cast_implicitly(source_value, target_value) |
Ob wir implizit vom Typ des Quellwerts auf den Zielwert casten können. |
checkpoint(database) |
Synchronisiert das WAL mit der Datei für die (optionale) Datenbank, ohne Transaktionen zu unterbrechen. |
coalesce(expr, ...) |
Gibt den ersten Ausdruck zurück, der zu einem Nicht-NULL-Wert auswertet. Nimmt 1 oder mehr Parameter entgegen. Jeder Ausdruck kann eine Spalte, ein Literal, ein Funktionsergebnis oder vieles andere sein. |
constant_or_null(arg1, arg2) |
Ist arg2 NULL, wird NULL zurückgegeben. Sonst wird arg1 zurückgegeben. |
count_if(x) |
Aggregatfunktion; Zeilen tragen 1 bei, wenn x true oder eine Zahl ungleich null ist, sonst 0. |
create_sort_key(parameters...) |
Konstruiert einen binär vergleichbaren Sortierschlüssel aus einer Menge von Eingabeparametern und Sortierqualifizierern. |
current_catalog() |
Gibt den Namen des derzeit aktiven Katalogs zurück. Standard ist memory. |
current_database() |
Gibt den Namen der derzeit aktiven Datenbank zurück. |
current_query() |
Gibt die aktuelle Abfrage als Zeichenkette zurück. |
current_schema() |
Gibt den Namen des derzeit aktiven Schemas zurück. Standard ist main. |
current_schemas(boolean) |
Gibt die Liste der Schemata zurück. Übergeben Sie den Parameter true, um implizite Schemata einzuschließen. |
current_setting('setting_name') |
Gibt den aktuellen Wert der Konfigurationseinstellung zurück. |
currval('sequence_name') |
Gibt den aktuellen Wert der Sequenz zurück. Beachten Sie, dass nextval mindestens einmal vor dem Aufruf von currval aufgerufen worden sein muss. |
error(message) |
Wirft die angegebene Fehlermeldung message. |
equi_width_bins(min, max, bincount, nice := false) |
Gibt die oberen Grenzen einer Partition des Intervalls [min, max] in bin_count gleich große Teilintervalle zurück (zur Verwendung z. B. mit histogram). Ist nice = true, können min, max und bincount angepasst werden, um ästhetisch gefälligere Ergebnisse zu erzeugen. |
force_checkpoint(database) |
Synchronisiert das WAL mit der Datei für die (optionale) Datenbank und unterbricht Transaktionen. |
gen_random_uuid() |
Gibt eine zufällige UUID ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
getenv(var) |
Gibt den Wert der Umgebungsvariable var zurück. Nur im Kommandozeilen-Client verfügbar. |
getvariable('variable_name') |
Gibt den Wert der SQL-Variable namens variable_name zurück oder NULL, wenn sie nicht gesetzt ist. |
hash(value) |
Gibt ein UBIGINT mit einem Hash von value zurück. Die verwendete Hashfunktion kann sich zwischen DuckDB-Versionen ändern. |
icu_sort_key(string, collator) |
Surrogat-Sortierschlüssel zum Sortieren von Sonderzeichen gemäß der jeweiligen Locale. Der Collator-Parameter ist optional. Nur verfügbar, wenn die ICU-Erweiterung installiert ist. |
if(a, b, c) |
Ternärer bedingter Operator. |
ifnull(expr, other) |
Eine zweiargumentige Variante von coalesce. |
is_histogram_other_bin(arg) |
Gibt true zurück, wenn arg das „Auffangelement“ seines Datentyps für die Funktion histogram_exact ist, das der „rechtesten Grenze“ seines Datentyps für die Funktion histogram entspricht. |
md5(string) |
Gibt den MD5-Hash der string als VARCHAR zurück. |
md5_number(string) |
Gibt den MD5-Hash der string als UHUGEINT zurück. |
md5_number_lower(string) |
Gibt das untere 64-Bit-Segment des MD5-Hash der string als UBIGINT zurück. |
md5_number_upper(string) |
Gibt das obere 64-Bit-Segment des MD5-Hash der string als UBIGINT zurück. |
nextval('sequence_name') |
Gibt den folgenden Wert der Sequenz zurück. |
nullif(a, b) |
Gibt NULL zurück, wenn a = b, sonst a. Entspricht CASE WHEN a = b THEN NULL ELSE a END. |
parse_formatted_bytes(string) |
Parst eine menschenlesbare Bytegrößen-Zeichenkette (z. B. '16 KiB') in eine UBIGINT-Anzahl von Bytes. Wirft bei ungültiger Eingabe einen Fehler. |
pg_typeof(expression) |
Gibt den kleingeschriebenen Namen des Datentyps des Ausdrucksergebnisses zurück. Für PostgreSQL-Kompatibilität. |
query(query_string) |
Tabellenfunktion, die die in query_string definierte Abfrage parst und ausführt. Nur konstante Zeichenketten sind erlaubt. Warnung: Diese Funktion erlaubt das Ausführen beliebiger Abfragen und kann den Datenbankzustand ändern. |
query_table(tbl_name) |
Tabellenfunktion, die die in tbl_name angegebene Tabelle zurückgibt. |
query_table(tbl_names, [by_name]) |
Tabellenfunktion, die die Vereinigung der in tbl_names angegebenen Tabellen zurückgibt. Ist der optionale Parameter by_name auf true gesetzt, wird die Semantik von UNION ALL BY NAME verwendet. |
read_blob(source) |
Gibt den Inhalt von source (ein Dateiname, eine Liste von Dateinamen oder ein Glob-Muster) als BLOB zurück. Details finden Sie im Leitfaden zu read_blob. |
read_text(source) |
Gibt den Inhalt von source (ein Dateiname, eine Liste von Dateinamen oder ein Glob-Muster) als VARCHAR zurück. Der Dateiinhalt wird zuerst auf gültiges UTF-8 geprüft. Versucht read_text, eine Datei mit ungültigem UTF-8 zu lesen, wird ein Fehler ausgelöst, der vorschlägt, stattdessen read_blob zu verwenden. Details finden Sie im Leitfaden zu read_text. |
replace_type(value, source_type, target_type) |
Castet rekursiv jedes Feld von value, das den Typ source_type hat, nach target_type. Die Typen werden als NULL-typisierte Werte angegeben, z. B. NULL::VARCHAR. |
sha1(string) |
Gibt ein VARCHAR mit dem SHA-1-Hash der string zurück. |
sha256(string) |
Gibt ein VARCHAR mit dem SHA-256-Hash der string zurück. |
sleep_ms(milliseconds) |
Pausiert die Ausführung für die angegebene Anzahl von Millisekunden. Gibt NULL zurück. |
stats(expression) |
Gibt eine Zeichenkette mit Statistiken zum Ausdruck zurück. Der Ausdruck kann eine Spalte, eine Konstante oder ein SQL-Ausdruck sein. |
txid_current() |
Gibt die Kennung der aktuellen Transaktion als BIGINT zurück. Weist eine neue zu, wenn die aktuelle Transaktion noch keine hat. |
typeof(expression) |
Gibt den Namen des Datentyps des Ausdrucksergebnisses zurück. |
uuid() |
Gibt eine zufällige UUID (UUIDv4) ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
uuidv4() |
Gibt eine zufällige UUID (UUIDv4) ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
uuidv7() |
Gibt eine zufällige UUIDv7 ähnlich dieser zurück: 81964ebe-00b1-7e1d-b0f9-43c29b6fb8f5. |
uuid_extract_timestamp(uuidv7) |
Extrahiert TIMESTAMP WITH TIME ZONE aus einem UUIDv7-Wert. |
uuid_extract_version(uuid) |
Extrahiert die UUID-Version (4 oder 7). |
version() |
Gibt die derzeit aktive Version von DuckDB in diesem Format zurück. |
alias(column)
| Beschreibung | Gibt den Namen der Spalte zurück. |
| Beispiel | alias(column1) |
| Ergebnis | column1 |
can_cast_implicitly(source_value, target_value)
| Beschreibung | Ob wir implizit vom Typ des Quellwerts auf den Zielwert casten können. |
| Beispiel | can_cast_implicitly(1::BIGINT, 1::SMALLINT) |
| Ergebnis | false |
checkpoint(database)
| Beschreibung | Synchronisiert das WAL mit der Datei für die (optionale) Datenbank, ohne Transaktionen zu unterbrechen. |
| Beispiel | checkpoint(my_db) |
| Ergebnis | success Boolean |
coalesce(expr, ...)
| Beschreibung | Gibt den ersten Ausdruck zurück, der zu einem Nicht-NULL-Wert auswertet. Nimmt 1 oder mehr Parameter entgegen. Jeder Ausdruck kann eine Spalte, ein Literal, ein Funktionsergebnis oder vieles andere sein. |
| Beispiel | coalesce(NULL, NULL, 'default_string') |
| Ergebnis | default_string |
constant_or_null(arg1, arg2)
| Beschreibung | Ist arg2 NULL, wird NULL zurückgegeben. Sonst wird arg1 zurückgegeben. |
| Beispiel | constant_or_null(42, NULL) |
| Ergebnis | NULL |
count_if(x)
| Beschreibung | Aggregatfunktion; Zeilen tragen 1 bei, wenn x true oder eine Zahl ungleich null ist, sonst 0. |
| Beispiel | count_if(42) |
| Ergebnis | 1 |
create_sort_key(parameters...)
| Beschreibung | Konstruiert einen binär vergleichbaren Sortierschlüssel aus einer Menge von Eingabeparametern und Sortierqualifizierern. |
| Beispiel | create_sort_key('abc', 'ASC NULLS FIRST'); |
| Ergebnis | \x02bcd\x00 |
current_catalog()
| Beschreibung | Gibt den Namen des derzeit aktiven Katalogs zurück. Standard ist memory. |
| Beispiel | current_catalog() |
| Ergebnis | memory |
current_database()
| Beschreibung | Gibt den Namen der derzeit aktiven Datenbank zurück. |
| Beispiel | current_database() |
| Ergebnis | memory |
current_query()
| Beschreibung | Gibt die aktuelle Abfrage als Zeichenkette zurück. |
| Beispiel | current_query() |
| Ergebnis | SELECT current_query(); |
current_schema()
| Beschreibung | Gibt den Namen des derzeit aktiven Schemas zurück. Standard ist main. |
| Beispiel | current_schema() |
| Ergebnis | main |
current_schemas(boolean)
| Beschreibung | Gibt die Liste der Schemata zurück. Übergeben Sie den Parameter true, um implizite Schemata einzuschließen. |
| Beispiel | current_schemas(true) |
| Ergebnis | ['temp', 'main', 'pg_catalog'] |
current_setting('setting_name')
| Beschreibung | Gibt den aktuellen Wert der Konfigurationseinstellung zurück. |
| Beispiel | current_setting('access_mode') |
| Ergebnis | automatic |
currval('sequence_name')
| Beschreibung | Gibt den aktuellen Wert der Sequenz zurück. Beachten Sie, dass nextval mindestens einmal vor dem Aufruf von currval aufgerufen worden sein muss. |
| Beispiel | currval('my_sequence_name') |
| Ergebnis | 1 |
error(message)
| Beschreibung | Wirft die angegebene Fehlermeldung message. |
| Beispiel | error('access_mode') |
equi_width_bins(min, max, bincount, nice := false)
| Beschreibung | Gibt die oberen Grenzen einer Partition des Intervalls [min, max] in bin_count gleich große Teilintervalle zurück (zur Verwendung z. B. mit histogram). Ist nice = true, können min, max und bincount angepasst werden, um ästhetisch gefälligere Ergebnisse zu erzeugen. |
| Beispiel | equi_width_bins(0.1, 2.7, 4, true) |
| Ergebnis | [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] |
force_checkpoint(database)
| Beschreibung | Synchronisiert das WAL mit der Datei für die (optionale) Datenbank und unterbricht Transaktionen. |
| Beispiel | force_checkpoint(my_db) |
| Ergebnis | success Boolean |
gen_random_uuid()
| Beschreibung | Gibt eine zufällige UUID (UUIDv4) ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
| Beispiel | gen_random_uuid() |
| Ergebnis | various |
getenv(var)
| Beschreibung | Gibt den Wert der Umgebungsvariable var zurück. Nur im Kommandozeilen-Client verfügbar. |
| Beispiel | getenv('HOME') |
| Ergebnis | /path/to/user/home |
getvariable('variable_name')
| Beschreibung | Gibt den Wert der SQL-Variable namens variable_name zurück oder NULL, wenn sie nicht gesetzt ist. Siehe die Anweisung SET VARIABLE für weitere Details. |
| Beispiel | getvariable('my_var') |
| Ergebnis | various |
hash(value)
| Beschreibung | Gibt ein UBIGINT mit dem Hash von value zurück. Die verwendete Hashfunktion kann sich zwischen DuckDB-Versionen ändern. |
| Beispiel | hash('🦆') |
| Ergebnis | 2595805878642663834 |
icu_sort_key(string, collator)
| Beschreibung | Surrogat-Sortierschlüssel zum Sortieren von Sonderzeichen gemäß der jeweiligen Locale. Der Collator-Parameter ist optional. Nur verfügbar, wenn die ICU-Erweiterung installiert ist. |
| Beispiel | icu_sort_key('ö', 'DE') |
| Ergebnis | 460145960106 |
if(a, b, c)
| Beschreibung | Ternärer bedingter Operator; gibt b zurück, wenn a, sonst c. Entspricht CASE WHEN a THEN b ELSE c END. |
| Beispiel | if(2 > 1, 3, 4) |
| Ergebnis | 3 |
ifnull(expr, other)
| Beschreibung | Eine zweiargumentige Variante von coalesce. |
| Beispiel | ifnull(NULL, 'default_string') |
| Ergebnis | default_string |
is_histogram_other_bin(arg)
| Beschreibung | Gibt true zurück, wenn arg das „Auffangelement“ seines Datentyps für die Funktion histogram_exact ist, das der „rechtesten Grenze“ seines Datentyps für die Funktion histogram entspricht. |
| Beispiel | is_histogram_other_bin('') |
| Ergebnis | true |
md5(string)
| Beschreibung | Gibt den MD5-Hash der string als VARCHAR zurück. |
| Beispiel | md5('abc') |
| Ergebnis | 900150983cd24fb0d6963f7d28e17f72 |
md5_number(string)
| Beschreibung | Gibt den MD5-Hash der string als UHUGEINT zurück. |
| Beispiel | md5_number('abc') |
| Ergebnis | 152195979970564155685860391459828531600 |
md5_number_lower(string)
| Beschreibung | Gibt die unteren 8 Bytes des MD5-Hash von string als UBIGINT zurück. |
| Beispiel | md5_number_lower('abc') |
| Ergebnis | 8250560606382298838 |
md5_number_upper(string)
| Beschreibung | Gibt die oberen 8 Bytes des MD5-Hash von string als UBIGINT zurück. |
| Beispiel | md5_number_upper('abc') |
| Ergebnis | 12704604231530709392 |
nextval('sequence_name')
| Beschreibung | Gibt den folgenden Wert der Sequenz zurück. |
| Beispiel | nextval('my_sequence_name') |
| Ergebnis | 2 |
nullif(a, b)
| Beschreibung | Gibt NULL zurück, wenn a = b, sonst a. Entspricht CASE WHEN a = b THEN NULL ELSE a END. |
| Beispiel | nullif(1+1, 2) |
| Ergebnis | NULL |
parse_formatted_bytes(string)
| Beschreibung | Parst eine menschenlesbare Bytegrößen-Zeichenkette (z. B. '16 KiB') in eine UBIGINT-Anzahl von Bytes. Wirft bei ungültiger Eingabe einen Fehler. |
| Beispiel | parse_formatted_bytes('1.5 GiB') |
| Ergebnis | 1610612736 |
pg_typeof(expression)
| Beschreibung | Gibt den kleingeschriebenen Namen des Datentyps des Ausdrucksergebnisses zurück. Für PostgreSQL-Kompatibilität. |
| Beispiel | pg_typeof('abc') |
| Ergebnis | varchar |
query(query_string)
| Beschreibung | Tabellenfunktion, die die in query_string definierte Abfrage parst und ausführt. Nur konstante Zeichenketten sind erlaubt. Warnung: Diese Funktion erlaubt das Ausführen beliebiger Abfragen und kann den Datenbankzustand ändern. |
| Beispiel | query('SELECT 42 AS x') |
| Ergebnis | 42 |
query_table(tbl_name)
| Beschreibung | Tabellenfunktion, die die in tbl_name angegebene Tabelle zurückgibt. |
| Beispiel | query_table('t1') |
| Ergebnis | (die Zeilen von t1) |
query_table(tbl_names, [by_name])
| Beschreibung | Tabellenfunktion, die die Vereinigung der in tbl_names angegebenen Tabellen zurückgibt. Ist der optionale Parameter by_name auf true gesetzt, wird die Semantik von UNION ALL BY NAME verwendet. |
| Beispiel | query_table(['t1', 't2']) |
| Ergebnis | (die Vereinigung der beiden Tabellen) |
read_blob(source)
| Beschreibung | Gibt den Inhalt von source (ein Dateiname, eine Liste von Dateinamen oder ein Glob-Muster) als BLOB zurück. Details finden Sie im Leitfaden zu read_blob. |
| Beispiel | read_blob('hello.bin') |
| Ergebnis | hello\x0A |
read_text(source)
| Beschreibung | Gibt den Inhalt von source (ein Dateiname, eine Liste von Dateinamen oder ein Glob-Muster) als VARCHAR zurück. Der Dateiinhalt wird zuerst auf gültiges UTF-8 geprüft. Versucht read_text, eine Datei mit ungültigem UTF-8 zu lesen, wird ein Fehler ausgelöst, der vorschlägt, stattdessen read_blob zu verwenden. Details finden Sie im Leitfaden zu read_text. |
| Beispiel | read_text('hello.txt') |
| Ergebnis | hello\n |
replace_type(value, source_type, target_type)
| Beschreibung | Castet rekursiv jedes Feld von value, das den Typ source_type hat, nach target_type. Quell- und Zieltyp werden als NULL-typisierte Werte angegeben, z. B. NULL::VARCHAR. Nützlich, um die Feldtypen eines tief verschachtelten Werts (z. B. eines STRUCT oder einer LIST) in einem Aufruf umzuwandeln. |
| Beispiel | replace_type([{'a': '42'}], NULL::VARCHAR, NULL::INTEGER) |
| Ergebnis | [{'a': 42}] |
sha1(string)
| Beschreibung | Gibt ein VARCHAR mit dem SHA-1-Hash der string zurück. |
| Beispiel | sha1('🦆') |
| Ergebnis | 949bf843dc338be348fb9525d1eb535d31241d76 |
sha256(string)
| Beschreibung | Gibt ein VARCHAR mit dem SHA-256-Hash der string zurück. |
| Beispiel | sha256('🦆') |
| Ergebnis | d7a5c5e0d1d94c32218539e7e47d4ba9c3c7b77d61332fb60d633dde89e473fb |
sleep_ms(milliseconds)
| Beschreibung | Pausiert die Ausführung für die angegebene Anzahl von Millisekunden. Gibt NULL zurück. |
| Beispiel | sleep_ms(500) |
| Ergebnis | NULL |
stats(expression)
| Beschreibung | Gibt eine Zeichenkette mit Statistiken zum Ausdruck zurück. Der Ausdruck kann eine Spalte, eine Konstante oder ein SQL-Ausdruck sein. |
| Beispiel | stats(5) |
| Ergebnis | '[Min: 5, Max: 5][Has Null: false]' |
txid_current()
| Beschreibung | Gibt die Kennung der aktuellen Transaktion als BIGINT zurück. Weist eine neue zu, wenn die aktuelle Transaktion noch keine hat. |
| Beispiel | txid_current() |
| Ergebnis | various |
typeof(expression)
| Beschreibung | Gibt den Namen des Datentyps des Ausdrucksergebnisses zurück. |
| Beispiel | typeof('abc') |
| Ergebnis | VARCHAR |
uuid()
| Beschreibung | Gibt eine zufällige UUID (UUIDv4) ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
| Beispiel | uuid() |
| Ergebnis | various |
uuidv4()
| Beschreibung | Gibt eine zufällige UUID (UUIDv4) ähnlich dieser zurück: eeccb8c5-9943-b2bb-bb5e-222f4e14b687. |
| Beispiel | uuidv4() |
| Ergebnis | various |
uuidv7()
| Beschreibung | Gibt eine zufällige UUIDv7 ähnlich dieser zurück: 81964ebe-00b1-7e1d-b0f9-43c29b6fb8f5. |
| Beispiel | uuidv7() |
| Ergebnis | various |
uuid_extract_timestamp(uuidv7)
| Beschreibung | Extrahiert TIMESTAMP WITH TIME ZONE aus einem UUIDv7-Wert. |
| Beispiel | uuid_extract_timestamp(uuidv7()) |
| Ergebnis | 2025-04-19 15:51:20.07+00 |
uuid_extract_version(uuid)
| Beschreibung | Extrahiert die UUID-Version (4 oder 7). |
| Beispiel | uuid_extract_version(uuidv7()) |
| Ergebnis | 7 |
version()
| Beschreibung | Gibt die derzeit aktive Version von DuckDB in diesem Format zurück. |
| Beispiel | version() |
| Ergebnis | various |
Hilfs-Tabellenfunktionen
Eine Tabellenfunktion wird anstelle einer Tabelle in einer FROM-Klausel verwendet.
| Name | Beschreibung |
|---|---|
glob(search_path) |
Gibt Dateinamen am durch search_path angegebenen Ort in einer einzelnen Spalte namens file zurück. Der search_path kann Glob-Muster-Syntax enthalten. |
repeat_row(varargs, num_rows) |
Gibt eine Tabelle mit num_rows Zeilen zurück, die jeweils die in varargs definierten Felder enthalten. |
glob(search_path)
| Beschreibung | Gibt Dateinamen am durch search_path angegebenen Ort in einer einzelnen Spalte namens file zurück. Der search_path kann Glob-Muster-Syntax enthalten. |
| Beispiel | glob('*') |
| Ergebnis | (Tabelle von Dateinamen) |
repeat_row(varargs, num_rows)
| Beschreibung | Gibt eine Tabelle mit num_rows Zeilen zurück, die jeweils die in varargs definierten Felder enthalten. |
| Beispiel | repeat_row(1, 2, 'foo', num_rows = 3) |
| Ergebnis | 3 Zeilen von 1, 2, 'foo' |