`
xiaoer_1982
  • 浏览: 1811978 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQL2005中利用xml拆分字符串序列

阅读更多

该问题来自社区提问。

效率不一定很高,但是肯定比替换为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
*/
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics