You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite中从TEXT列提取#开头可变长度数字并获取最大值的方法

SQLite提取文本列指定数字并取最大值的实现方案

格式特征适配说明

你的文本列有明确的固定格式边界:需要提取的数字始终紧邻字符串开头的#符号,数字段结束后直接接半角空格,空格后才是长度可变的任意文本,不需要依赖复杂的不定长截取逻辑。

推荐方案:原生内置函数实现(无扩展依赖)

该方案适配绝大多数SQLite运行环境,不需要额外安装正则类扩展,是通用性最高的实现方式,实现逻辑:

  • 用INSTR(列名, ' ')定位文本中第一个半角空格的位置,即数字段的结束边界
  • 用SUBSTR截取从字符串第2位(跳过开头的#符号)到空格前1位的子串,得到纯数字文本
  • 将截取得到的文本转换为整数类型后,通过MAX()聚合计算所有行的数值最大值
    假设你的表名为target_table,存储对应文本的列名为content,可直接使用如下SQL:
SELECT MAX(CAST(SUBSTR(content, 2, INSTR(content, ' ') - 2) AS INTEGER))
FROM target_table;

运行该SQL返回的结果为纯数字值,不会附带#标识或后续文本内容。针对你给出的4条测试数据,执行后得到的最大值为78,完全匹配预期输出。

正则匹配方案(需扩展支持)

如果你的SQLite环境已经安装了支持正则捕获的扩展,可以使用正则规则精准匹配目标数字,适配的正则规则为^#([0-9]+) :

  • 规则含义:从字符串开头匹配#符号,捕获后续连续的所有数字,数字的结束边界为紧跟的第一个半角空格,完全贴合你提到的数字格式特征

注意:该方案依赖SQLite的正则扩展能力,通用性不如原生函数实现,无特殊需求不推荐优先使用。


内容的提问来源于stack exchange,提问作者Béa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 11:15:04