标量实用函数
以下函数难以归类到特定的函数类型,但广泛适用。
Name | Description |
---|---|
alias(column) |
返回列的名称。 |
checkpoint(database) |
将WAL与文件同步(可选)数据库,而不中断事务。 |
coalesce(expr, ...) |
返回第一个计算结果为非NULL 值的表达式。接受1个或多个参数。每个表达式可以是列、字面值、函数结果或其他多种类型。 |
constant_or_null(arg1, arg2) |
如果 arg2 是 NULL ,返回 NULL 。否则,返回 arg1 。 |
count_if(x) |
聚合函数;如果x 为true 或非零数字,则行贡献1,否则为0。 |
current_catalog() |
返回当前活动目录的名称。默认为内存。 |
current_schema() |
返回当前活动模式的名称。默认为main。 |
current_schemas(boolean) |
返回模式列表。传递一个true 参数以包含隐式模式。 |
current_setting('setting_name') |
返回配置设置的当前值。 |
currval('sequence_name') |
返回序列的当前值。注意,在调用currval 之前,必须至少调用一次nextval 。 |
error(message) |
抛出给定的错误 message 。 |
equi_width_bins(min, max, bincount, nice := false) |
返回将区间 [min, max] 划分为 bin_count 个等大小子区间的上边界(用于例如 histogram )。如果 nice = true ,则可能会调整 min 、max 和 bincount 以产生更美观的结果。 |
force_checkpoint(database) |
将WAL与文件同步(可选)数据库中断事务。 |
gen_random_uuid() |
uuid 的别名。返回一个类似于这样的随机 UUID:eeccb8c5-9943-b2bb-bb5e-222f4e14b687 。 |
getenv(var) |
返回环境变量 var 的值。仅在 命令行客户端 中可用。 |
hash(value) |
Returns a UBIGINT with the hash of the value . |
icu_sort_key(string, collator) |
用于根据特定区域设置排序特殊字符的代理键。Collator 参数是可选的。仅在安装了 ICU 扩展时有效。 |
if(a, b, c) |
三元条件运算符。 |
ifnull(expr, other) |
coalesce 的双参数版本。 |
is_histogram_other_bin(arg) |
当 arg 是其数据类型的“捕获所有元素”时返回 true ,这对于 histogram_exact 函数来说是等于其数据类型的“最右边界”,这对于 histogram 函数来说是等于其数据类型的“最右边界”。 |
md5(string) |
返回string 的MD5哈希值,作为VARCHAR 。 |
md5_number(string) |
返回string 的MD5哈希值,作为HUGEINT 。 |
md5_number_lower(string) |
返回string 的MD5哈希值的低64位作为BIGINT 。 |
md5_number_higher(string) |
返回string 的MD5哈希值的高64位段作为BIGINT 。 |
nextval('sequence_name') |
返回序列的下一个值。 |
nullif(a, b) |
如果 a = b 则返回 NULL ,否则返回 a 。等同于 CASE WHEN a = b THEN NULL ELSE a END 。 |
pg_typeof(expression) |
返回表达式结果的数据类型的小写名称。为了与PostgreSQL兼容。 |
query( query_string_literal ) |
解析并执行在query_string_literal 中定义的查询的表函数。只允许使用字面字符串。警告:此函数允许调用任意查询,可能会改变数据库状态。 |
query_table( tbl_name ) |
返回给定tbl_name 中表的表函数。 |
query_table( tbl_names , [ by_name ]) |
返回给定tbl_names 中表的联合的表函数。如果可选的by_name 参数设置为true ,则使用UNION ALL BY NAME 语义。 |
read_blob(source) |
Returns the content from source (a filename, a list of filenames, or a glob pattern) as a BLOB . See the read_blob guide for more details. |
read_text(source) |
返回来自source (文件名、文件名列表或通配符模式)的内容作为VARCHAR 。文件内容首先被验证为有效的UTF-8。如果read_text 尝试读取包含无效UTF-8的文件,则会抛出错误,建议使用read_blob 代替。有关更多详细信息,请参阅read_text 指南。 |
sha256(value) |
返回一个包含value 的SHA-256哈希值的VARCHAR 。 |
stats(expression) |
返回一个包含表达式统计信息的字符串。表达式可以是列、常量或SQL表达式。 |
txid_current() |
返回当前事务的标识符,一个BIGINT 值。如果当前事务还没有标识符,它将分配一个新的。 |
typeof(expression) |
返回表达式结果的数据类型的名称。 |
uuid() |
返回一个类似于以下的随机UUID:eeccb8c5-9943-b2bb-bb5e-222f4e14b687 。 |
version() |
返回当前活动的DuckDB版本,格式如下。 |
alias(column)
描述 | 返回列的名称。 |
示例 | alias(column1) |
结果 | column1 |
checkpoint(database)
描述 | 同步WAL与文件(可选)数据库,而不中断事务。 |
示例 | checkpoint(my_db) |
结果 | success Boolean |
coalesce(expr, ...)
描述 | 返回第一个评估为非NULL 值的表达式。接受1个或多个参数。每个表达式可以是列、字面值、函数结果或其他多种形式。 |
示例 | coalesce(NULL, NULL, 'default_string') |
结果 | default_string |
constant_or_null(arg1, arg2)
描述 | 如果 arg2 是 NULL ,返回 NULL 。否则,返回 arg1 。 |
示例 | constant_or_null(42, NULL) |
结果 | NULL |
count_if(x)
描述 | 聚合函数;如果x 为true 或非零数字,则行贡献1,否则为0。 |
示例 | count_if(42) |
Result | 1 |
current_catalog()
描述 | 返回当前活动目录的名称。默认是内存。 |
示例 | current_catalog() |
结果 | memory |
current_schema()
描述 | 返回当前活动模式的名称。默认为main。 |
示例 | current_schema() |
结果 | main |
current_schemas(boolean)
描述 | 返回模式列表。传递一个true 参数以包含隐式模式。 |
示例 | current_schemas(true) |
结果 | ['temp', 'main', 'pg_catalog'] |
current_setting('setting_name')
描述 | 返回配置设置的当前值。 |
示例 | current_setting('access_mode') |
结果 | automatic |
currval('sequence_name')
描述 | 返回序列的当前值。注意,在调用currval 之前,必须至少调用一次nextval 。 |
示例 | currval('my_sequence_name') |
Result | 1 |
error(message)
描述 | 抛出给定的错误 message 。 |
示例 | error('access_mode') |
equi_width_bins(min, max, bincount, nice := false)
描述 | 返回将区间 [min, max] 划分为 bin_count 个等大小子区间的上边界(用于例如 histogram )。如果 nice = true ,则可能会调整 min 、max 和 bincount 以产生更美观的结果。 |
示例 | equi_width_bins(0.1, 2.7, 4, true) |
结果 | [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] |
force_checkpoint(database)
描述 | 同步WAL与文件以(可选)中断数据库事务。 |
示例 | force_checkpoint(my_db) |
Result | success Boolean |
gen_random_uuid()
描述 | uuid 的别名。返回一个类似于这样的随机 UUID:eeccb8c5-9943-b2bb-bb5e-222f4e14b687 。 |
示例 | gen_random_uuid() |
结果 | 多种 |
getenv(var)
描述 | 返回环境变量 var 的值。仅在 命令行客户端 中可用。 |
示例 | getenv('HOME') |
结果 | /path/to/user/home |
hash(value)
描述 | 返回一个带有value 哈希值的UBIGINT 。 |
示例 | hash('🦆') |
结果 | 2595805878642663834 |
icu_sort_key(string, collator)
描述 | 用于根据特定区域设置对特殊字符进行排序的代理键。Collator 参数是可选的。仅在安装了 ICU 扩展时有效。 |
示例 | icu_sort_key('ö', 'DE') |
结果 | 460145960106 |
if(a, b, c)
描述 | 三元条件运算符;如果a为真则返回b,否则返回c。等同于CASE WHEN a THEN b ELSE c END 。 |
示例 | if(2 > 1, 3, 4) |
Result | 3 |
ifnull(expr, other)
描述 | coalesce 的双参数版本。 |
示例 | ifnull(NULL, 'default_string') |
Result | default_string |
is_histogram_other_bin(arg)
描述 | 当arg 是其数据类型的“全能元素”时,返回true ,这对于histogram_exact 函数来说,等同于其数据类型的“最右边界”,这对于histogram 函数来说也是如此。 |
示例 | is_histogram_other_bin('') |
Result | true |
md5(string)
描述 | 返回string 的MD5哈希值,作为VARCHAR 。 |
示例 | md5('123') |
结果 | 202cb962ac59075b964b07152d234b70 |
md5_number(string)
描述 | 返回string 的MD5哈希值,作为HUGEINT 。 |
示例 | md5_number('123') |
结果 | 149263671248412135425768892945843956768 |
md5_number_lower(string)
描述 | 返回string 的MD5哈希值的低8字节作为BIGINT 。 |
示例 | md5_number_lower('123') |
结果 | 8091599832034528150 |
md5_number_higher(string)
描述 | 返回string 的MD5哈希值的高8字节作为BIGINT 。 |
示例 | md5_number_higher('123') |
结果 | 6559309979213966368 |
nextval('sequence_name')
描述 | 返回序列的下一个值。 |
示例 | nextval('my_sequence_name') |
Result | 2 |
nullif(a, b)
描述 | 如果 a = b,则返回 NULL ,否则返回 a。等同于 CASE WHEN a = b THEN NULL ELSE a END 。 |
示例 | nullif(1+1, 2) |
Result | NULL |
pg_typeof(expression)
描述 | 返回表达式结果的数据类型的小写名称。为了与PostgreSQL兼容。 |
示例 | pg_typeof('abc') |
结果 | varchar |
query(query_string_literal)
描述 | 解析并执行在query_string_literal 中定义的查询的表函数。只允许使用字面字符串。警告:此函数允许调用任意查询,可能会改变数据库状态。 |
示例 | query('SELECT 42 AS x') |
Result | 42 |
query_table(tbl_name)
描述 | 返回在tbl_name 中给出的表的表函数。 |
示例 | query('t1') |
结果 | (t1 的行) |
query_table(tbl_names, [by_name])
描述 | 返回在tbl_names 中给出的表的联合的表函数。如果可选的by_name 参数设置为true ,则使用UNION ALL BY NAME 语义。 |
示例 | query(['t1', 't2']) |
结果 | (两个表的联合) |
read_blob(source)
Description | Returns the content from source (a filename, a list of filenames, or a glob pattern) as a BLOB . See the read_blob guide for more details. |
Example | read_blob('hello.bin') |
Result | hello\x0A |
read_text(source)
描述 | 返回来自source (文件名、文件名列表或通配符模式)的内容作为VARCHAR 。文件内容首先被验证为有效的UTF-8。如果read_text 尝试读取包含无效UTF-8的文件,则会抛出错误,建议使用read_blob 代替。有关更多详细信息,请参阅read_text 指南。 |
示例 | read_text('hello.txt') |
结果 | hello\n |
sha256(value)
描述 | 返回一个带有value 的SHA-256哈希值的VARCHAR 。 |
示例 | sha256('🦆') |
结果 | d7a5c5e0d1d94c32218539e7e47d4ba9c3c7b77d61332fb60d633dde89e473fb |
stats(expression)
描述 | 返回一个包含表达式统计信息的字符串。表达式可以是列、常量或SQL表达式。 |
示例 | stats(5) |
结果 | '[Min: 5, Max: 5][Has Null: false]' |
txid_current()
描述 | 返回当前事务的标识符,一个BIGINT 值。如果当前事务还没有标识符,它将分配一个新的。 |
示例 | txid_current() |
Result | various |
typeof(expression)
描述 | 返回表达式结果的数据类型的名称。 |
示例 | typeof('abc') |
结果 | VARCHAR |
uuid()
描述 | 返回一个类似于以下的随机UUID:eeccb8c5-9943-b2bb-bb5e-222f4e14b687 。 |
示例 | uuid() |
Result | various |
version()
描述 | 返回当前活动的DuckDB版本,格式如下。 |
示例 | version() |
Result | various |
实用表函数
表函数用于在FROM
子句中代替表。
Name | Description |
---|---|
glob(search_path) |
返回在search_path指示的位置找到的文件名,结果以名为file 的单列形式返回。search_path可能包含glob模式匹配语法。 |
repeat_row(varargs, num_rows) |
返回一个包含num_rows 行的表,每行包含varargs 中定义的字段。 |
glob(search_path)
描述 | 返回在search_path指示的位置找到的文件名,结果以单列形式显示,列名为file 。search_path可能包含通配符匹配语法。 |
示例 | glob('*') |
结果 | (文件名表) |
repeat_row(varargs, num_rows)
描述 | 返回一个包含num_rows 行的表,每行包含varargs 中定义的字段。 |
示例 | repeat_row(1, 2, 'foo', num_rows = 3) |
结果 | 3 行 1, 2, 'foo' |