SQL SERVER 把逗号隔开的字符串拆分成行

本文介绍如何从数据库中带有逗号分隔的爱好字段,通过SQL脚本将其转换为单独的记录,便于后续分析和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现有数据,比如爱好hobby,有多个爱好用逗号隔开放在一起存储,现在需要把他们分开

最终结果

直接上脚本

use DB01;
-- 建表
create table dbo.tb_hobby(
id int null
,name varchar(10) null
,hobby varchar(100) null 
);

-- 插入数据
insert into dbo.tb_hobby values ('1001','朱梅拉','跑步,踢足球,打篮球');
insert into dbo.tb_hobby values ('1002','李格策','书法,跑步');

-- 查询
select * from dbo.tb_hobby; 


-- 拆分成行
select a.id
      ,a.name
	  ,SUBSTRING(a.hobby,number,CHARINDEX(',',a.hobby+',',number)-number) as hobby
  from tb_hobby a,master..spt_values
 where number >= 1 and number < len(a.hobby)
   and type='p'
   and SUBSTRING(','+a.hobby,number,1)=','
;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据_苡~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值