Welcome

首页 / 数据库 / SQLServer / SQL2005中利用xml拆分字符串序列

SQL2005中利用xml拆分字符串序列2009-11-19 csdn 贾涛该问题来自社区提问。

效率不一定很高,但是肯定比替换为select union all好些,起码不用考虑因为字符串过长而导致动态sql语句过长

代码如下:

DECLARE @str varchar(1000)
DECLARE @idoc int;
DECLARE @doc xml;

set @str="1¦3¦4¦25"
set @doc=cast("<Root><item><ID>"+replace(@str,"¦","</ID></item><item><ID>")+"</ID></item></Root>" as xml)

EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc

SELECT * FROM OPENXML (@Idoc, "/Root/item",2)
WITH (
[ID] varchar(10)

/**//*
ID
-----------
1
3
4
25*/