SQL 将一个字段内用逗号分隔的内容分成多条记录

Posted Snowfun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 将一个字段内用逗号分隔的内容分成多条记录相关的知识,希望对你有一定的参考价值。

CREATE TABLE [dbo].[testtb](
[namea] [varchar](100) NULL,
[desca] [varchar](50) NULL
) ON [PRIMARY]
insert into testtb values(‘A1,A2,‘,‘AAAAA‘)
insert into testtb values(‘A3,‘,‘BBBBBB‘)
insert into testtb values(‘A5,A8,A9,‘,‘AAACCAA‘)
insert into testtb values(‘A6,A20,‘,‘AAANNNNAA‘)
--select * from testtb 
--truncate table testtb
--定义一个临时表
WITH testtb2 AS (
SELECT namea,desca,CHARINDEX(‘,‘,namea) STA,CHARINDEX(‘,‘,namea)-1 LENS FROM testtb  
UNION ALL
SELECT namea,desca,CHARINDEX(‘,‘,namea,STA+1) STA,CHARINDEX(‘,‘,namea,STA+1)-STA-1 LENS FROM testtb2 WHERE STA<>0)
--SELECT * FROM testtb2
  
SELECT SUBSTRING(namea,STA-LENS,LENS) as [name],desca FROM testtb2
WHERE STA<>0
order by  SUBSTRING(namea,STA-LENS,LENS)

 

以上是关于SQL 将一个字段内用逗号分隔的内容分成多条记录的主要内容,如果未能解决你的问题,请参考以下文章

sql 如何将查出来的一列用逗号拼接

sql语句怎样将查询结果逗号分开

SQL语句,字段表里某列数据变为用逗号分隔的字符串

在sql server数据库中查询一个用逗号分隔的字段的问题

mysql 字段内容是用逗号分隔的。怎么按序列查询内容

SQL Server如何将Id相同的字段合并,并且以逗号隔开