有一个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>
实现
Name:admin ListName:wangu
怎么写sql 语句 谢谢各位大虾 给个实用的链接也可以

解决方案 »

  1.   

    SQLServer2005 XML在T-SQL查询中的典型应用
    http://topic.csdn.net/u/20081107/17/68aaf5a9-c596-4ab5-ae18-f3370b2ab35b.html
      

  2.   

    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 *
    FROM(
    SELECT 
        A.x.query('Name').value('.','varchar(10)') Name  ,
        A.x.query('Date').value('.','datetime') Date 
    FROM @xml.nodes('/Person/Node') AS A(x))a/*
    Name       Date
    ---------- -----------------------
    admin      2010-04-06 00:00:00.000
    lisi       2010-04-06 00:00:00.000
    wangwu     2010-04-07 00:00:00.000(3 行受影响)
    */
      

  3.   


    SELECT 
        C.value('Name[1]','varchar(20)'),
    C.value('Date[1]','datetime')
    FROM @xml.nodes('//Node') AS T(C)
                         
    -------------------- -----------------------
    admin                2010-04-06 00:00:00.000
    lisi                 2010-04-06 00:00:00.000
    wangwu               2010-04-07 00:00:00.000(3 行受影响)
      

  4.   

    显示格式:录入人:admin 最后修改人:wangwu
    只有显示一行
    帮帮忙 
      

  5.   


    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)') 录入人  ,
        A.x.value('(Node/Name)[last()]','varchar(10)') 最后修改人 
    FROM @xml.nodes('Person') AS A(x)
    /*
    录入人        最后修改人
    ---------- ----------
    admin      wangwu(1 行受影响)
    */