sql >> Database >  >> RDS >> Sqlserver

individuele XML-node selecteren met SQL

Gebruik de query()-methode als je een deel van je XML wilt krijgen.

declare @XML xml

set @XML = 
'
<root>
  <row1>
    <value>1</value>
  </row1>
  <row2>
    <value>2</value>
  </row2>
</root>
'

select @XML.query('/root/row2')

Resultaat:

<row2>
  <value>2</value>
</row2>

Als u de waarde van een specifiek knooppunt wilt, moet u de value() Method .

select @XML.value('(/root/row2/value)[1]', 'int')

Resultaat:

2

Bijwerken:

Als u uw XML naar meerdere rijen wilt versnipperen, gebruikt u de nodes() Method .

Om waarden te krijgen:

declare @XML xml

set @XML = 
'
<root>
  <row>
    <value>1</value>
  </row>
  <row>
    <value>2</value>
  </row>
</root>
'

select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)

Resultaat:

(No column name)
1
2

Om de volledige XML te krijgen:

select T.N.query('.')
from @XML.nodes('/root/row') as T(N)

Resultaat:

(No column name)
<row><value>1</value></row>
<row><value>2</value></row>



  1. Hoe een veel-op-veel hiërarchische structuur in MySQL te implementeren?

  2. Controleer hoe oud een Oracle-database is?

  3. Laravel Database Strikte modus

  4. Controleer Tekenreeks is een geldige datum of niet