zoukankan      html  css  js  c++  java
  • SQL SERVER 2005中利用XML对字符串拆分的方法

    1、常规方法(可运用于SQL SERVER 2000中)

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

    set @str='aaa,bbb,ccc'
    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
    -----------
    aaa

    bbb

    ccc

    */ 

    2、运用SQL SERVER 2005 中的新类型xml

    代码
    declare @str varchar(1000)
    declare @x xml
    set @str='aaa,bbb,ccc'
    SELECT @x = CONVERT(xml,
                
    '<v>' + REPLACE(@str',''</v><v>'+ '</v>')

    SELECT N.v.value('.''varchar(100)')
        
    FROM @x.nodes('/v') N(v)

    3、运用SQL SERVER 2005 中的新类型xml及OUTER APPLY一句SQL搞定

    代码
    DECLARE @str VARCHAR(1000)
    DECLARE @x xml
    SET @str='aaa,bbb,ccc'
    SELECT id
          
    FROM (SELECT [value] = CONVERT(XML , '<v>' + REPLACE(@str , ',' , '</v><v>')+ '</v>')
          ) A
          
    OUTER APPLY ( SELECT id = N.v.value('.' , 'varchar(100)')
                        
    FROM A.[value].nodes('/v') N (v)
                      ) B

    其实第二种与第三种是一样的,只不过第二种用了一个中间变量来处理

  • 相关阅读:
    使用JS对中文字符串进行utf8的Base64编码
    subprocess理解
    25组新鲜出炉的有用图标集
    jQuery UI 1.8.9 发布
    正则匹配拼音
    jQuery Mobile 教程 (1)
    10款精选的用于构建良好易用性网站的jQuery插件
    Html 5 video/audio 格式转换 ogg
    10个有用的jquery 图片插件
    asp.net MVC 权限设计(续)
  • 原文地址:https://www.cnblogs.com/myjece/p/1628525.html
Copyright © 2011-2022 走看看