0
declare @prueba xml 
set @prueba = '<obligaciones> 
            <obligacion> <Id>51</Id> </obligacion>
            <obligacion>  <Id>52</Id> </obligacion>
            <obligacion>  <Id>53</Id> </obligacion> 
           </obligaciones>'

我想从 XML 中获取下表

select Id from @prueba....


51
52
53

有人可以帮忙查询吗?

4

1 回答 1

1

看看xml 数据类型方法

select T.N.value('(text())[1]', 'int') as Id
from @prueba.nodes('/obligaciones/obligacion/Id') as T(N)

更新:

obligaciones节点中有多个值,您可以这样做:

declare @prueba xml set @prueba = '
<obligaciones>
  <obligacion>
    <id>51</id>
    <TipoCancelacionId>1</TipoCancelacionId>
  </obligacion>
  <obligacion>
    <id>52</id>
    <TipoCancelacionId>1</TipoCancelacionId>
  </obligacion>
  <obligacion>
    <id>53</id>
    <TipoCancelacionId>1</TipoCancelacionId>
  </obligacion>
</obligaciones>'

select T.N.value('(id/text())[1]', 'int') as Id,
       T.N.value('(TipoCancelacionId/text())[1]', 'int') as TipoCancelacionId
from @prueba.nodes('/obligaciones/obligacion') as T(N)

结果:

Id          TipoCancelacionId
----------- -----------------
51          1
52          1
53          1
于 2013-01-02T14:32:20.913 回答