今天由于工作需要,需要把数据把列根据指定的内容拆分数据
其中一条数据实例
select id , XXXX FROM BIZ_PAPER where id ='4af210ec675927fa016772bf7dd025b0'
拆分方法:
select t3.id ,t3.XXXX as XXXX from (
select A.id , B.XXXX from (
SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX , ',', '</v><v>') + '</v></root>') FROM BIZ_PAPER) A
outer apply(
SELECT XXXX = N.v.value('.', 'varchar(100)') FROM A.XXXX .nodes('/root/v') N(v)) B) t3 where t3.id ='4af210ec675927fa016772bf7dd025b0'
结果
在自己研究这行代码之后,做出如下讲解,如果有错误的地方还请指教
SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX , ',', '</v><v>') + '</v></root>') FROM BIZ_PAPER
这一行的重点在于CONVERT,XML是指类型,xml 数据类型实例拆分为关系数据,则 nodes() 方法非常有用,至于XML类型的数据,我后面进行补充
REPLACE 指按照 ' , ' 进行替换,并且按照指定的内容进行拼接
最后的结果为










