select substr(cqzh,instr(cqzh,'第')+1,instr(cqzh,'号')-instr(qlrtxdz,'第') from t1
说明:当不存在“第”字时,instr(cqzh,'第')
返回0,查询结果将为“号”字之前的所有字符
首先直接附上查询的SQL语句
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语句
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)
更新后的结果表:
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