版本3.40.1; 示例用来提示,具体效果可以写简单查询验证
3.40.1 2022-12-28 14:03:47 df5c253c0b3dd24916e4ec7cf77d3db5294cc9fd45ae7b9c5e82ad8197f3alt1
函数名 | 用途 | 参数要求 | 输出类型 | 示例 |
---|---|---|---|---|
pow | 计算 x 的 y 次幂 | x: 数值, y: 数值 | 数值 | SELECT pow(2, 3); |
group_concat | 将多行数据连接成一个字符串 | 字段, 分隔符(可选) | 字符串 | SELECT group_concat(name, ','); |
json_type | 获取 JSON 值的数据类型 | JSON 值 | 字符串 | SELECT json_type('{"a": 1}', '$.a'); |
julianday | 计算日期的儒略日数 | 日期或时间字符串 | 数值 | SELECT julianday('2024-01-01'); |
ntile | 将行划分为指定的桶数 | 桶数 | 数值 | SELECT ntile(4) OVER (ORDER BY id) FROM table; |
nullif | 如果两个值相等,返回 NULL | 值1, 值2 | 原始类型 | SELECT nullif(5, 5); |
sqlite_compileoption_get | 获取 SQLite 编译选项 | 索引 | 字符串 | SELECT sqlite_compileoption_get(0); |
json_valid | 检查字符串是否为有效 JSON | JSON 字符串 | 整数 | SELECT json_valid('{"a":1}'); |
json_quote | 转义 JSON 字符串 | 字符串 | 字符串 | SELECT json_quote('Hello'); |
json_patch | 合并两个 JSON 对象 | JSON1, JSON2 | JSON | SELECT json_patch('{"a":1}', '{"b":2}'); |
-> | JSON 提取操作符 | JSON, 路径 | JSON | SELECT '{"a":1}' -> '$.a'; |
json_array | 创建 JSON 数组 | 多个值 | JSON | SELECT json_array(1, 2, 3); |
current_timestamp | 获取当前时间戳 | 无 | 字符串 | SELECT current_timestamp; |
power | 计算 x 的 y 次幂 | x: 数值, y: 数值 | 数值 | SELECT power(2, 3); |
sqlite_compileoption_used | 检查编译选项是否启用 | 编译选项 | 整数 | SELECT sqlite_compileoption_used('THREADSAFE'); |
json_remove | 从 JSON 中移除指定键 | JSON, 路径 | JSON | SELECT json_remove('{"a":1,"b":2}', '$.b'); |
json_object | 创建 JSON 对象 | 键, 值 | JSON | SELECT json_object('a', 1, 'b', 2); |
json_insert | 向 JSON 中插入值 | JSON, 路径, 值 | JSON | SELECT json_insert('{"a":1}', '$.b', 2); |
->> | JSON 提取并转化为纯文本 | JSON, 路径 | 字符串 | SELECT '{"a":1}' ->> '$.a'; |
sin | 计算正弦值 | 弧度值 | 数值 | SELECT sin(3.14159 / 2); |
sum | 计算数值总和 | 数值字段 | 数值 | SELECT sum(price) FROM items; |
quote | 将字符串包装为字面量 | 字符串 | 字符串 | SELECT quote('Hello'); |
printf | 格式化字符串 | 格式化字符串, 参数 | 字符串 | SELECT printf('%s %d', 'Item', 1); |
likelihood | 提示 SQLite 查询优化器某概率 | 表达式, 概率值 | 数值 | SELECT likelihood(a > 10, 0.8); |
json_replace | 替换 JSON 中的值 | JSON, 路径, 值 | JSON | SELECT json_replace('{"a":1}', '$.a', 2); |
json_extract | 提取 JSON 中的值 | JSON, 路径 | JSON | SELECT json_extract('{"a":1}', '$.a'); |
last_value | 返回窗口中最后一个值 | 值 | 值类型 | SELECT last_value(col) OVER (ORDER BY id); |
rank | 计算排名,按分组排序 | 无 | 数值 | SELECT rank() OVER (ORDER BY score DESC); |
sign | 返回数值的符号(-1, 0 或 1) | 数值 | 数值 | SELECT sign(-42); |
sqrt | 返回平方根 | 数值 | 数值 | SELECT sqrt(16); |
sinh | 计算双曲正弦值 | 数值 | 数值 | SELECT sinh(1); |
tan | 计算正切值 | 数值(弧度) | 数值 | SELECT tan(0.5); |
round | 四舍五入 | 数值, 小数位数(可选) | 数值 | SELECT round(3.14159, 2); |
rtrim | 移除字符串末尾的空格或指定字符 | 字符串, 字符串(可选) | 字符串 | SELECT rtrim('hello '); |
nth_value | 返回窗口中第 n 个值 | 值, n | 值类型 | SELECT nth_value(score, 2) OVER (ORDER BY id); |
tanh | 计算双曲正切值 | 数值 | 数值 | SELECT tanh(1); |
random | 返回一个随机整数 | 无 | 整数 | SELECT random(); |
trim | 移除字符串两端的空格或指定字符 | 字符串, 字符串(可选) | 字符串 | SELECT trim(' hello '); |
time | 返回当前时间 | 格式化字符串(可选) | 字符串 | SELECT time(); |
radians | 将角度转换为弧度 | 数值 | 数值 | SELECT radians(180); |
trunc | 截断数值到整数部分 | 数值 | 数值 | SELECT trunc(3.14); |
total | 计算总和(忽略 NULL) | 数值字段 | 数值 | SELECT total(price) FROM items; |
substr | 提取字符串的子字符串 | 字符串, 起始位置, 长度 | 字符串 | SELECT substr('abcdef', 2, 3); |
replace | 替换字符串中的所有子串 | 字符串, 原子串, 新子串 | 字符串 | SELECT replace('hello world', 'world', 'SQLite'); |
upper | 将字符串转换为大写 | 字符串 | 字符串 | SELECT upper('hello'); |
subtype | 返回 BLOB 数据的子类型 | BLOB | 数值 | SELECT subtype(blob_data); |
typeof | 返回表达式的数据类型 | 值 | 字符串 | SELECT typeof(123); |
load_extension | 加载动态库扩展 | 动态库路径, 函数名(可选) | 无 | SELECT load_extension('extension.dll'); |
soundex | 返回字符串的 Soundex 编码 | 字符串 | 字符串 | SELECT soundex('SQLite'); |
json_group_array | 将组中的值作为 JSON 数组返回 | 数值或字符串 | JSON | SELECT json_group_array(value) FROM table; |
avg | 计算平均值 | 数值 | 数值 | SELECT avg(score) FROM scores; |
abs | 返回绝对值 | 数值 | 数值 | SELECT abs(-42); |
json_group_object | 将键值对作为 JSON 对象返回 | 键, 值 | JSON | SELECT json_group_object(key, value) FROM table; |
json_array_length | 返回 JSON 数组的长度 | JSON, 路径(可选) | 整数 | SELECT json_array_length('[1,2,3]'); |
strftime | 格式化日期和时间 | 格式字符串, 日期时间 | 字符串 | SELECT strftime('%Y-%m-%d', 'now'); |
atan | 返回反正切值(弧度) | 数值 | 数值 | SELECT atan(1); |
asin | 返回反正弦值(弧度) | 数值 | 数值 | SELECT asin(0.5); |
acos | 返回反余弦值(弧度) | 数值 | 数值 | SELECT acos(0.5); |
substring | 提取字符串的子字符串 | 字符串, 起始位置, 长度 | 字符串 | SELECT substring('abcdef', 2, 3); |
randomblob | 生成随机字节数据 | 字节长度 | BLOB | SELECT randomblob(16); |
unicode | 返回字符串首字符的 Unicode 编码值 | 字符串 | 整数 | SELECT unicode('A'); |
percent_rank | 返回窗口中当前行的百分比排名 | 无 | 数值 | SELECT percent_rank() OVER (ORDER BY score); |
row_number | 返回窗口中当前行的行号 | 无 | 整数 | SELECT row_number() OVER (ORDER BY score); |
atanh | 计算反双曲正切值 | 数值 | 数值 | SELECT atanh(0.5); |
asinh | 计算反双曲正弦值 | 数值 | 数值 | SELECT asinh(0.5); |
acosh | 计算反双曲余弦值 | 数值 | 数值 | SELECT acosh(1.5); |
cos | 计算余弦值 | 数值(弧度) | 数值 | SELECT cos(0.5); |
atan2 | 计算四象限反正切值 | y, x | 数值 | SELECT atan2(1, 1); |
last_insert_rowid | 返回最近插入行的 ROWID | 无 | 整数 | SELECT last_insert_rowid(); |
sqlite_log | 写入自定义日志 | 等级, 消息 | 无 | SELECT sqlite_log(2, 'Warning message'); |
unlikely | 提示优化器某个条件极不可能为真 | 表达式 | 布尔值 | SELECT unlikely(column > 1000); |
cosh | 计算双曲余弦值 | 数值 | 数值 | SELECT cosh(0.5); |
ceil | 向上取整 | 数值 | 整数 | SELECT ceil(3.14); |
char | 返回由指定 Unicode 编码值组成的字符串 | 一个或多个整数 | 字符串 | SELECT char(65, 66, 67); |
unixepoch | 返回 Unix 时间戳 | 日期时间(可选) | 整数 | SELECT unixepoch('2024-01-01 00:00:00'); |
exp | 计算 e 的指数值 | 数值 | 数值 | SELECT exp(1); |
count | 计算记录或非 NULL 值的数量 | 列名或 * | 整数 | SELECT count(*) FROM table; |
date | 提取或格式化日期 | 日期字符串, 格式(可选) | 字符串 | SELECT date('now', 'start of month'); |
ceiling | 同 ceil ,向上取整 | 数值 | 整数 | SELECT ceiling(2.718); |
total_changes | 返回数据库的总更改次数 | 无 | 整数 | SELECT total_changes(); |
changes | 返回最近一条语句更改的行数 | 无 | 整数 | SELECT changes(); |
sqlite_version | 返回 SQLite 的版本号 | 无 | 字符串 | SELECT sqlite_version(); |
degrees | 将弧度转换为角度 | 数值 | 数值 | SELECT degrees(1.57); |
floor | 向下取整 | 数值 | 整数 | SELECT floor(3.99); |
coalesce | 返回首个非 NULL 值 | 一个或多个值 | 任意类型 | SELECT coalesce(NULL, 'default'); |
glob | 模式匹配,类似于 LIKE | 值, 模式 | 布尔值 | SELECT 'abc' GLOB 'a*c'; |
zeroblob | 创建指定长度的零字节 BLOB | 长度 | BLOB | SELECT zeroblob(10); |
hex | 返回值的十六进制表示 | 值 | 字符串 | SELECT hex('SQLite'); |
iif | 条件判断 | 条件, 真值, 假值 | 任意类型 | SELECT iif(1 > 0, 'yes', 'no'); |
sqlite_source_id | 返回 SQLite 源代码标识符 | 无 | 字符串 | SELECT sqlite_source_id(); |
format | 格式化字符串 | 格式字符串, 参数列表 | 字符串 | SELECT format('%s %d', 'Value:', 42); |
datetime | 返回格式化的日期时间 | 日期字符串, 修饰符(可选) | 字符串 | SELECT datetime('now', 'localtime'); |
cume_dist | 返回累计分布值 | 无 | 数值 | SELECT cume_dist() OVER (ORDER BY score); |
ln | 计算自然对数 | 数值 | 数值 | SELECT ln(2.718); |
instr | 返回子字符串首次出现的位置 | 字符串, 子字符串 | 整数 | SELECT instr('hello', 'e'); |
json | 将字符串转换为 JSON | 字符串 | JSON | SELECT json('{"key": "value"}'); |
dense_rank | 返回密集排名 | 无 | 整数 | SELECT dense_rank() OVER (ORDER BY score); |
log | 计算对数 | 底数, 数值 | 数值 | SELECT log(10, 1000); |
ifnull | 如果第一个参数为 NULL,返回第二个参数 | 两个值 | 任意类型 | SELECT ifnull(NULL, 'default'); |
current_date | 返回当前日期 | 无 | 字符串 | SELECT current_date; |
current_time | 返回当前时间 | 无 | 字符串 | SELECT current_time; |
lag | 返回窗口函数中前一行的值 | 列名, 偏移量(可选), 默认值(可选) | 任意类型 | SELECT lag(score, 1, 0) OVER (ORDER BY id); |
mod | 计算两数的模 | 数值1, 数值2 | 数值 | SELECT mod(10, 3); |
log2 | 计算以 2 为底的对数 | 数值 | 数值 | SELECT log2(8); |
like | 字符串模式匹配 | 字符串, 模式 | 布尔值 | SELECT 'hello' LIKE 'h%'; |
max | 返回最大值 | 一个或多个值 | 任意类型 | SELECT max(age) FROM users; |
min | 返回最小值 | 一个或多个值 | 任意类型 | SELECT min(age) FROM users; |
lead | 返回窗口函数中后一行的值 | 列名, 偏移量(可选), 默认值(可选) | 任意类型 | SELECT lead(score, 1, 0) OVER (ORDER BY id); |
log10 | 计算以 10 为底的对数 | 数值 | 数值 | SELECT log10(1000); |
lower | 转换字符串为小写 | 字符串 | 字符串 | SELECT lower('HELLO'); |
ltrim | 去除字符串左侧的空格或指定字符 | 字符串, 要去除的字符(可选) | 字符串 | SELECT ltrim(' hello'); |
first_value | 返回窗口函数中第一个值 | 列名 | 任意类型 | SELECT first_value(score) OVER (ORDER BY id); |
pi | 返回圆周率 π | 无 | 数值 | SELECT pi(); |
length | 返回字符串的长度 | 字符串 | 数值 | SELECT length('hello'); |
likely | 提示优化器某条件很可能为真 | 表达式 | 布尔值 | SELECT likely(1 = 1); |
json_set | 更新 JSON 对象中的键值对 | JSON, 键, 值(可选多个) | JSON | SELECT json_set('{"a":1}', '$.a', 2); |
edit | 编辑距离计算 | 两个字符串 | 数值 | SELECT edit('kitten', 'sitting'); |
shell_idquote | 对字符串加上标识符引用 | 字符串 | 字符串 | SELECT shell_idquote('column_name'); |
fts5 | 创建或管理 FTS5 全文搜索表 | 表名 | 字符串 | SELECT fts5('content'); |
fts3_tokenizer | 定义或查询 FTS3 分词器 | 分词器名称, 配置参数(可选) | 字符串 | SELECT fts3_tokenizer('simple'); |
bm25 | 计算 BM25 分数 | 文档参数 | 数值 | SELECT bm25(matchinfo(content)); |
decimal_cmp | 比较两个十进制数 | 数值1, 数值2 | 数值 | SELECT decimal_cmp(1.23, 4.56); |
rtreenode | 处理 R*Tree 节点 | 节点数据 | 字符串 | SELECT rtreenode(data); |
sha3_query | SHA-3 哈希值计算 | 字符串, 位数(可选) | 字符串 | SELECT sha3_query('hello', 256); |
optimize | 对数据库进行优化 | 表名 | 无 | SELECT optimize('my_table'); |
sqlar_uncompress | 解压缩 SQLAR 格式数据 | 压缩数据 | 字符串 | SELECT sqlar_uncompress(compressed_data); |
matchinfo | 返回全文搜索的匹配信息 | 索引, 参数(可选) | 字符串 | SELECT matchinfo(content); |
offsets | 返回全文搜索匹配的偏移信息 | 索引 | 字符串 | SELECT offsets(content); |
fts5_source_id | 获取 FTS5 的源标识 | 无 | 字符串 | SELECT fts5_source_id(); |
usleep | 暂停执行一定时间(微秒) | 时间(微秒) | 无 | SELECT usleep(1000); |
sqlar_compress | 压缩数据为 SQLAR 格式 | 数据 | 字符串 | SELECT sqlar_compress(raw_data); |
snippet | 提取全文搜索结果的片段 | 参数 | 字符串 | SELECT snippet(content); |
decimal | 转换数值为十进制格式 | 数值 | 数值 | SELECT decimal(123.456); |
decimal_add | 十进制加法运算 | 数值1, 数值2 | 数值 | SELECT decimal_add(1.23, 4.56); |
ieee754_mantissa | 获取 IEEE754 浮点数的尾数 | 数值 | 数值 | SELECT ieee754_mantissa(1.23); |
shell_module_schema | 返回模块的模式信息 | 模块名 | 字符串 | SELECT shell_module_schema('my_module'); |
match | 检查文本是否匹配指定模式 | 文本, 模式 | 布尔值 | SELECT match('hello', 'h%'); |
rtreedepth | 获取 R*Tree 节点的深度 | 节点数据 | 数值 | SELECT rtreedepth(data); |
sha3 | 计算字符串的 SHA-3 哈希值 | 字符串, 位数(可选) | 字符串 | SELECT sha3('hello', 256); |
decimal_sum | 计算十进制数的总和 | 数值 | 数值 | SELECT decimal_sum(1.23, 4.56); |
decimal_sub | 计算两个十进制数的差 | 数值1, 数值2 | 数值 | SELECT decimal_sub(5.67, 2.34); |
regexp | 使用正则表达式匹配 | 字符串, 模式 | 布尔值 | SELECT regexp('hello', '^h.*o$'); |
zipfile | 解析 ZIP 文件 | ZIP 文件数据 | 无 | SELECT zipfile(data); |
shell_int32 | 处理 32 位整数 | 整数1, 整数2 | 数值 | SELECT shell_int32(10, 20); |
ieee754_exponent | 获取 IEEE754 浮点数的指数 | 数值 | 数值 | SELECT ieee754_exponent(3.14); |
ieee754 | 处理 IEEE754 浮点数 | 数值1, 数值2 | 数值 | SELECT ieee754(1.23, 4.56); |
decimal_mul | 计算两个十进制数的乘积 | 数值1, 数值2 | 数值 | SELECT decimal_mul(1.23, 4.56); |
zipfile_cds | 提取 ZIP 文件的中央目录结构 | ZIP 文件数据 | 字符串 | SELECT zipfile_cds(data); |
highlight | 对查询结果的高亮显示 | 查询结果, 关键词 | 字符串 | SELECT highlight(content, 'keyword'); |
ieee754_to_blob | 将 IEEE754 浮点数转换为二进制 blob | 浮点数 | blob | SELECT ieee754_to_blob(3.14); |
rtreecheck | 检查 R*Tree 的完整性 | 节点数据 | 无 | SELECT rtreecheck(data); |
shell_add_schema | 添加一个数据库模式 | 模式名, 表名, 列名 | 无 | SELECT shell_add_schema('schema', 'table', 'column'); |
ieee754_from_blob | 从二进制 blob 转换为 IEEE754 浮点数 | blob 数据 | 浮点数 | SELECT ieee754_from_blob(x'4048F5C3'); |
shell_putsnl | 输出字符串并换行 | 字符串 | 无 | SELECT shell_putsnl('hello world'); |
readfile | 读取文件内容 | 文件路径 | 字符串 | SELECT readfile('/path/to/file.txt'); |
regexpi | 使用正则表达式匹配(忽略大小写) | 字符串, 模式 | 布尔值 | SELECT regexpi('Hello', '^h.*o$'); |
lsmode | 获取 LSM 模式 | 模式参数 | 字符串 | SELECT lsmode(1); |
writefile | 写入数据到文件 | 文件路径, 数据 | 无 | SELECT writefile('/path/to/file.txt', 'data'); |
shell_escape_crnl | 将换行和回车转义 | 字符串 | 字符串 | SELECT shell_escape_crnl('line1\nline2'); |