Inside SqlServer 读书随笔:利用XML把类数组的列折成行
前些日子有处理过一些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,'<x>'+REPLACE(@ip,'.','</x><x>')+'</x>')
--得到4行数据
select @ipx
select T.c.query('data(.)') as r
from @ipx.nodes('/x') T(c)
具体XML方法,可以参考:http://msdn.microsoft.com/en-US/library/ms190798(v=SQL.90).aspx