sqlite支持的函数汇总

版本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检查字符串是否为有效 JSONJSON 字符串整数SELECT json_valid('{"a":1}');
json_quote转义 JSON 字符串字符串字符串SELECT json_quote('Hello');
json_patch合并两个 JSON 对象JSON1, JSON2JSONSELECT json_patch('{"a":1}', '{"b":2}');
->JSON 提取操作符JSON, 路径JSONSELECT '{"a":1}' -> '$.a';
json_array创建 JSON 数组多个值JSONSELECT 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, 路径JSONSELECT json_remove('{"a":1,"b":2}', '$.b');
json_object创建 JSON 对象键, 值JSONSELECT json_object('a', 1, 'b', 2);
json_insert向 JSON 中插入值JSON, 路径, 值JSONSELECT 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, 路径, 值JSONSELECT json_replace('{"a":1}', '$.a', 2);
json_extract提取 JSON 中的值JSON, 路径JSONSELECT 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 数组返回数值或字符串JSONSELECT json_group_array(value) FROM table;
avg计算平均值数值数值SELECT avg(score) FROM scores;
abs返回绝对值数值数值SELECT abs(-42);
json_group_object将键值对作为 JSON 对象返回键, 值JSONSELECT 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生成随机字节数据字节长度BLOBSELECT 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');
ceilingceil,向上取整数值整数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长度BLOBSELECT 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字符串JSONSELECT 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, 键, 值(可选多个)JSONSELECT 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_querySHA-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浮点数blobSELECT 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');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值