如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值

数据库如何处理拆分字段内带逗号拼接及用逗号合并同一字段内的值项目场景:同一字段内存在用逗号拼接的如何拆分问题描述:想把上述的names字段拆分,分成三条记录解决方案:SQL实现项目场景:同一字段内存在多个值如何用逗号拼接问题描述:想把上述的三条names字段合并成一条解决方案:SQL实现(SQLserver、MySQL)

项目场景:同一字段内存在用逗号拼接的如何拆分

提示:同一字段内存在用逗号拼接的的如何拆分
例如:项目场景:把id:1;names:aaa,bbb,ccc这种拆分成 id:1;names:aaa; id:2;names:bbb;id:3;names:ccc;


问题描述:想把上述的names字段拆分,分成三条记录

提示:想把上述的names字段拆分,分成三条记录。
如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值


解决方案:SQL实现

提示:直接上SQL语句

SELECT
b.names
FROM
(
SELECT
names = CONVERT(
xml,
'<root><v>'+REPLACE(names,',','</v><v>')+''</v></root>'
)
FROM 表
)a OUTER APPLY (
SELECT
names C.v.value
('.','nvarchar(100)')
FROM
a.names.nodes ('/root/v') C (v)
)b

SELECT
names = CONVERT(
xml,
‘’+REPLACE(names,’,’,’’)+’’’
)
FROM 表
这部分直接把names转成xml格式:aaabbbccc
如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值

项目场景:同一字段内存在多个值如何用逗号拼接

提示:同一字段内存在多个值如何用逗号拼接:
例如:项目场景:把 id:1;names:aaa; id:2;names:bbb;id:3;names:ccc这种合并成id:1;names:aaa,bbb,ccc


问题描述:想把上述的三条names字段合并成一条

提示:想把上述的三条names字段合并成一条:
如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值


解决方案:SQL实现(SQLserver、MySQL)

一、:SQLserver解决方式用xml for path:
首先呢!我们在增加一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好!那么现在表结构如下:
如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
这时,我们的要求是查询学生表,显示所有学生的爱好的结果集,代码如下:

SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
SELECT sName,
(SELECT hobby+',' FROM student
WHERE sName=A.sName
FOR XML PATH('')) AS StuList
FROM student A
GROUP BY sName
) B

结果如下:
如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
二、:MySQL解决方式用group_concat函数:
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
下面举例说明:

select id,price from goods;

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)

select id, group_concat(price) from goods group by id;

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
以id分组,把price字段的值在一行打印出来,分号分隔

select id,group_concat(price separator ';') from goods group by id;

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
以id分组,把去除重复冗余的price字段的值打印在一行,逗号分隔

select id,group_concat(distinct price) from goods group by id;

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
以id分组,把price字段的值去重打印在一行,逗号分隔,按照price倒序排列

select id,group_concat(DISTINCT price order by price desc) from goods group by id;

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 如何用sql处理拆分字段内带逗号拼接及用逗号合并同一字段内的值
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏