dexsql 文档 打开应用

DexSQL 接受 SQLite 内置函数的一个子集。不在列表里的会在解析期被拒(function call is outside the DexSQL read-only subset),而不是悄悄算错。

标量函数

文本 length substr/substring upper lower trim ltrim rtrim replace instr hex quote unicode char
数值 abs min(a, b, …) max(a, b, …)
空值 / 条件 coalesce ifnull nullif iif
类型 typeof
DEX 专用 dex_java_name

dex_java_name 把 DEX 类型 descriptor 渲染成 Java 风格名字——dex_java_name('Lcom/f/B;') 得到 com.f.B,[I 得到 int[],V 得到 void。它就是 types.java_name 背后的那个函数,直接内联调用和读那一列享受同样的处理。

min / max 传两个及以上参数时是标量函数,传一个时是聚合函数。

聚合函数

count(*) count(x) count(DISTINCT x) sum avg total min max group_concat(x) group_concat(x, sep) string_agg(x, sep)

group_concat 支持排序,这是让拼接结果确定的关键:group_concat(value, ',' ORDER BY ordinal)。protos 视图的 param_descriptors 就是这么来的。

char(...) 按码点构造文本;char() 返回空文本。U+0000 会保留,补充平面字符在内部使用 MUTF-8 代理对。输出转换和原始字节转换见文本值。

窗口函数

row_number() rank() dense_rank() ntile(n) lag(x[, offset[, default]]) lead(x[, offset[, default]]) first_value(x) last_value(x),以及带 OVER (...) 的 count、sum、avg、min、max。不支持 DISTINCT 窗口聚合。不支持的名称、参数数量或窗口形式会返回错误。


Copyright (c) 2026 LSPosed Developers。本文档采用 MIT 许可证。