分拆后结果如下

日期:2019-09-28编辑作者:北京pk10官网-数据库

有表tb, 如下:
id value


1 aa,bb
2 aaa,bbb,ccc
欲按id,分拆value列, 分拆后结果如下:
id value


1 aa
1 bb
2 aaa
2 bbb
2 ccc

--方法1.使用xml完成
SELECT A.id, B.value FROM
(
SELECT id, [value] = CONVERT(xml,'<root><v>' + REPLACE([value], ',', '</v><v>') + '</v></root>') FROM tb
) A OUTER APPLY
(
SELECT value = N.v.value('.', 'varchar(100)') FROM A.[value].nodes('/root/v') N(v)
) B

--方法2.使用CTE完成
;with tt as
(select id,[value]=cast(left([value],charindex(',',[value]+',')-1) as nvarchar(100)),Split=cast(stuff([value]+',',1,charindex(',',[value]+','),'') as nvarchar(100)) from tb
union all
select id,[value]=cast(left(Split,charindex(',',Split)-1) as nvarchar(100)),Split= cast(stuff(Split,1,charindex(',',Split),'') as nvarchar(100)) from tt where split>''
)
select id,[value] from tt order by id option (MAXRECURSION 0)

DROP TABLE tb

本文由北京pk赛车官网下载发布于北京pk10官网-数据库,转载请注明出处:分拆后结果如下

关键词:

实现思路

摘要: 下文讲述使用sql脚本的方法判断字符串为大小写的方法分享,如下所示 实验环境:sqlserver 2008 R2 实现思路: 将字...

详细>>

函数简介

转自:http://www.maomao365.com/?p=4732 一、mssql sql hashbytes函数简介 hashbytes函数功能为:返回一个字符, 通过 MD2、MD4、MD5、S...

详细>>

SQL Server开始支持窗口函数 (Window

从SQL Server 2005起,SQL Server开始支持窗口函数 (WindowFunction),以及到SQL Server2012,窗口函数功能增强,目前为止支持以下...

详细>>

我们来详细分析一下sql语句的逻辑处理顺序

首先看下面一条比较完成语句,都是比较常见的关键字。 USE Temp;SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numordersF...

详细>>