Zum Inhalt springen

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' |