前些日子有处理过一些XML的数据,有一种XML拆分数组的方法,这两天大量用到。就记录一下。

--例子是分折一个ip地址,得到每一段的值,当然也可以是其它类数据的数据或列:a-b-c-d或者3,4,5,6之类的
declare @ip varchar(15);
set @ip='192.168.1.123'
--把字串转成XML
declare @ipx xml;
set @ipx=CONVERT(xml,''+REPLACE(@ip,'.','')+'')
--得到4行数据
select @ipx 
select T.c.query('data(.)') as r
from @ipx.nodes('/x') T(c)