select substr(cqzh,instr(cqzh,'第')+1,instr(cqzh,'号')-instr(qlrtxdz,'第') from t1

说明:当不存在“第”字时,instr(cqzh,'第') 返回0,查询结果将为“号”字之前的所有字符

首先直接附上查询的SQL语句

// 查询第~号之间的字符,如:北京第5号,则查询结果为5
select replace(a.cqzh,'号','') final
from (
      select replace(cqzh,s.bb,'') cqzh, s.temp
      from (
           select cqzh, substr(cqzh,1,instr(cqzh,'第')) bb,temp
           from t1)

这段SQL语句可用来查询字段值指定两个字符‘第’和‘号’中间的字符串,查询前的表和查询后的结果如下图

查询前原数据表:
在这里插入图片描述
查询的结果表:
在这里插入图片描述
此时,若想更新final里的值到temp列,可加入update语句,同时加上一个唯一值列,用于匹配对应的行,再附上更新的SQL语句

// 更新final列到temp列
update t1 set temp = (select replace(a.cqzh,'号','') final
                  	from (
                        select replace(cqzh,s.bb,'') cqzh, s.temp,s.id 
                        from (
                              select cqzh, substr(cqzh,1,instr(cqzh,'第')) bb,temp,id 
                              from t1)
                        a where cqzh is not null and a.id = t1.id)
//注意:where条件需在括号内

更新后的结果表:
在这里插入图片描述

1.更新同一张表时,update(需要将where的条件写进括号内)
2.更新需要唯一值做连接条件
3.有人说截尾可用length()-1,以后再试

文章目录一、简述二、代码三、总结一、简述由于SQLite没有函数可支持一次性提取子字符串,因此将使用嵌套查询的方法实现查询和更新二、代码首先直接附上查询的SQL语句// 查询第~号之间的字符,如:北京第5号,则查询结果为5select replace(a.cqzh,'号','') finalfrom ( select replace(cqzh,s.bb,'') cqzh, s.temp from ( select cqzh, substr(cqz
SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite源代码不受版权限制。 它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统配置。
在使用sqlite3遇到一些细节问题,特此记录一下。 截取字符串 substr 在sqlite3截取字符串的内置函数为substr(name,index,length),且index是从1开始的,使用方法如下。 现在截取Password的前两位字符 SELECT SUBSTR(Password,1,2) as Password from User 拼接字符串sqlite3拼接字符的符号为||而不是+,使用方法如下。 现在给Password字段添加hello
select invoice_batch_no, substr(invoice_batch_no,instr(invoice_batch_no,'-')) from inv_invoice --读取-分隔符,前面的字符,123-ABC返回123 select invoice_batch_no, substr(invoice_batch_no,1,instr(invoice_batch_no...
支持最大可达2T的数据库。 (241 字节) 字符串和BLOB类型的大小最大可达 2G 字节(231字节)。 小的代码: 完整配置的少于250KB,忽略一些可选特性的少于150KB。 在大多数常见操作上比流行的客户/服务器数据库引擎更快。 简单,易于使用的API。 内建TCL绑定。 另外提供可用于许多其他语言的绑定。 具有良好注释的源代码,95%经过测试。 独立:没有外部依赖。 源代码位于公共域。 可用于任何用途。
SQLite 是一种轻量级的关系数据库,可以使用 C 语言编写的 SQLite3 库来连接和操作 SQLite 数据库。要将数据存储在 SQLite 数据库,需要先创建数据库连接,然后使用 SQL 语句来创建表和插入数据。 举个例,假设有一个名为 "users" 的表,包含 "id"、"name" 和 "age" 三个字段,那么可以使用以下 SQL 语句来创建表并插入数据: CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER); INSERT INTO users (name, age) VALUES ("Alice", 20), ("Bob", 25); 如果要使用字符型界面来展示数据库的数据,可以使用 SQLite3 库提供的函数来执行 SQL 查询并处理查询结果。例如,可以使用以下代码来执行查询并在字符型界面上输出查询结果: #include <stdio.h> #include <sqlite3.h> int main(int argc, char *argv[]) { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("my_database.db", &db); if (rc != SQLITE_OK) { fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 1; char *sql = "SELECT * FROM users"; rc = sqlite3_exec(db, sql, callback, 0, &err_msg); if (rc != SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db); return 0