⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Utility Functions

标量实用函数

以下函数难以归类到特定的函数类型,但广泛适用。

Name Description
alias(column) 返回列的名称。
checkpoint(database) 将WAL与文件同步(可选)数据库,而不中断事务。
coalesce(expr, ...) 返回第一个计算结果为非NULL值的表达式。接受1个或多个参数。每个表达式可以是列、字面值、函数结果或其他多种类型。
constant_or_null(arg1, arg2) 如果 arg2NULL,返回 NULL。否则,返回 arg1
count_if(x) 聚合函数;如果xtrue或非零数字,则行贡献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,则可能会调整 minmaxbincount 以产生更美观的结果。
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)

描述 如果 arg2NULL,返回 NULL。否则,返回 arg1
示例 constant_or_null(42, NULL)
结果 NULL

count_if(x)

描述 聚合函数;如果xtrue或非零数字,则行贡献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,则可能会调整 minmaxbincount 以产生更美观的结果。
示例 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指示的位置找到的文件名,结果以单列形式显示,列名为filesearch_path可能包含通配符匹配语法
示例 glob('*')
结果 (文件名表)

repeat_row(varargs, num_rows)

描述 返回一个包含num_rows行的表,每行包含varargs中定义的字段。
示例 repeat_row(1, 2, 'foo', num_rows = 3)
结果 3 行 1, 2, 'foo'