首页 > 数据库 >SQLite: 多行合并字符串、字串转多行

SQLite: 多行合并字符串、字串转多行

时间:2022-12-13 17:34:44浏览次数:47  
标签:多行 SQLite group schedule email 字串 address mail id

网络收集整理如下: 

CREATE TABLE t_email (
email_id INTEGER PRIMARY KEY AUTOINCREMENT,
schedule_id INTEGER,
line_id INTEGER,
mail_group VARCHAR (20),
mail_address VARCHAR (50)
);

insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,1, '[email protected]','TO');


insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,2, '[email protected]','TO');

insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,3, '[email protected]','TO');


insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,4, '[email protected]','CC');


insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,5, '[email protected]','CC');

insert into t_email ( schedule_id, line_id, mail_address, mail_group)
values (214,6, '[email protected]','CC');

 


-- 多行合并为字符串
SQLite 聚合函数中的 group_concat()

先上定义 group_concat(x[,y])

该函数返回一个字符串,该字符串将会连接所有非NULL的x值。该函数的y参数将作为每个x值之间的分隔符,如果在调用时忽略该参数,在连接时将使用缺省分隔符","。再有就是各个字符串之间的连接顺序是不确定的。

需求是

DepID StaffName
----------------------
101 AAAaa
101 BBBb
101 CCCccc
202 DDDddd
202 EEE
202 FFF
303 GGGGG
表说明,DepID为部门ID,StaffName为员工姓名,一个部门当然会有0..N多个员工

用SQL语句将上面的表变成下面组合起来的方式。
DepID StaffNames
-------------------
101 AAAaa;BBBb;CCCccc
202 DDDddd;EEE;FFF
303 GGGGG

大概就是上面的意思吧。


聚合,后查询sqlite聚合函数,才找到group_concat()

group_concat()函数要和group by语句同时使用才能产生效果
在sqlite中应该用 || 来拼接字符串的结果
————————————————
版权声明:本文为CSDN博主「狼_夏天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/langzxz/article/details/16807859


-- sqlite实现字符串分割
WITH split(word, str) AS (
-- alternatively put your query here
-- SELECT '', category||',' FROM categories
SELECT '', 'Auto,A,1234444,dsfdd,sd,deal'||','
UNION ALL
SELECT
substr(str, 0, instr(str, ',')),
substr(str, instr(str, ',')+1)
FROM split WHERE str!=''
) SELECT word FROM split WHERE word!='';

/* -- 结果
word
------
Auto
A
1234444
dsfdd
sd
deal
*/

标签:多行,SQLite,group,schedule,email,字串,address,mail,id
From: https://www.cnblogs.com/samrv/p/16979396.html

相关文章

  • SQLIte的安装及库创建
    1.SQLite官方下载地址:https://www.sqlite.org/download.html,下载完成后,将压缩包解压到同一文件夹下 2.CMD命令符切换到上面文件夹,运行sqlite3,显示SQLite版本即表示安装......
  • Codeforces Round #837 (Div. 2)D (最大回文字串+树)
    题目链接:D.Hossamand(sub-)palindromictree题目描述给定一颗有n(n<=2e3)个顶点的树,每个顶点有一个点权(字符),定义s(u,v)为从u到v的简单路径所经过的点权形成的字符......
  • 「HAOI2015」数字串拆分
    「HAOI2015」数字串拆分定义\(f_s\)将\(s\)拆分成\(1\simm\)的数的和的方案数,\(g_s\)将\(s\)这个数字串分割成若干个数字(允许前导\(0\)),设它们的和为\(x\),那......
  • sqlite-net-pcl-C#版_安装与使用教
    一、安装:1、引用NuGet包:  “sqlite-net-pcl”与“SQLitePCLRaw.bundle_green”NuGet包。2、sqlite-net-pcl的“数据库连接类”与“数据库配置文件”  ①......
  • C#操作SQLite
    1、SQLite介绍  SQLite,是一款轻型的数据库,是遵守的ACID关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标嵌入式是的,而且已经在很多中使用了它,它占用资......
  • 从头学Android之Android的数据存储--SQLite
    应用场景:在前面几讲我们讲了Android的数据存储使用文件或SharedPreferences存储数据,除此之外呢,有时候我们需要用到一个小型的数据库用于来保存我们的一些持久型的数据。所以......
  • sqlite3数据库提示database disk image is malformed 解决办法
    在嵌入式产品中,用sqlite3进行数据存储是非常常用且有效的方法。但是最近在项目中遇到了数据库被损坏的情况,具体表现为使用数据库管理软件打开数据库后,使用sql语句对数据进......
  • sqlite3_数据库-存储和统计数据
    history2022-11-163.40.02022-09-29(3.39.4)2004-06-09(2.8.14)2001-09-28(2.0.0)2001-07-23(1.0.32)2000-08-17(1.0)2000-05-29下载和安装下载-安装-配......
  • el-table关于多行合并(部分根据id值合并)
      <el-table:data="tableData":span-method="objectSpanMethod"borderstyle="width:100%;margin-top:0"><el-table-columntype="index"label="序......
  • 解决QT 中Sqlite数据库添加加密功能
    解决QT 中Sqlite数据库添加加密功能是本文要介绍的内容,Sqlite数据库默认没有加密功能,对一些需要对工程文件进行保密的场合产生了不便,本文以QT4.4.3为例,对QT 源代码中......