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 に答える