有一个XML<Person>
  <Node>
    <Name>admin</Name>
    <Date>2010-4-6</Date>
  </Node>
  <Node>
    <Name>lisi</Name>
    <Date>2010-4-6</Date>
  </Node>
  <Node>
    <Name>wangwu</Name>
    <Date>2010-4-7</Date>
  </Node>
</Person>
实现
显示:第一个姓名:admin 第2个姓名:lisi 最后一个姓名:wangu 
只显示一行 
sql语句怎么写 谢谢各位!!!
在线等~~~~

解决方案 »

  1.   

    declare @xml xml
    set @xml='
    <Person>
      <Node>
        <Name>admin</Name>
        <Date>2010-4-6</Date>
      </Node>
      <Node>
        <Name>lisi</Name>
        <Date>2010-4-6</Date>
      </Node>
      <Node>
        <Name>wangwu</Name>
        <Date>2010-4-7</Date>
      </Node>
    </Person>';with t as
    (
    SELECT 
        A.x.value('Name[1]','varchar(10)') Name  
    FROM @xml.nodes('//Node') AS A(x)

    select STUFF((select ','+name from t for xml path('')),1,1,'')
    /*
    admin,lisi,wangwu(1 行受影响)
    */
      

  2.   

    参考: sql xml 入门
      

  3.   

    declare @xml xml
    set @xml='
    <Person>
      <Node>
        <Name>admin</Name>
        <Date>2010-4-6</Date>
      </Node>
      <Node>
        <Name>lisi</Name>
        <Date>2010-4-6</Date>
      </Node>
      <Node>
        <Name>wangwu</Name>
        <Date>2010-4-7</Date>
      </Node>
    </Person>'
    SELECT 
        A.x.value('(Node/Name)[1]','varchar(10)') Name1,  
        A.x.value('(Node/Name)[2]','varchar(10)') Name2,  
        A.x.value('(Node/Name)[3]','varchar(10)') Name3  
    FROM @xml.nodes('Person') AS A(x)/*
    Name1      Name2      Name3
    ---------- ---------- ----------
    admin      lisi       wangwu(1 行受影响)
    */还是要这样的结果?
      

  4.   

    问一下 htl258 获取最后一个节点 怎么写?
    A.x.value('(Node/Name)[3]','varchar(10)') Name3  
    ??
      

  5.   

    不会。。    我保存的时候用过XML
      

  6.   

    最后一个  
     A.x.value('(Node/Name)[last()]','varchar(10)') Name3  
    有空得看看xPath 
      

  7.   

    挺感谢 上面那位( htl258)朋友的!谢谢,谢谢你们!
      

  8.   


    --last()
    SELECT 
        A.x.value('(Node/Name)[last()]','varchar(10)') Name1
    FROM @xml.nodes('Person') AS A(x)
      

  9.   

    樓主參照一下XML常用方法
    http://topic.csdn.net/u/20090813/17/06951cf3-cd2c-4509-ac0b-9b3bed28ea57.html
      

  10.   

    首节点或左后一个节点可以用xPath语法进行选择.分别是函数first(),last()具体的可以看看w3c标准的说明.