0

サーバーで利用可能なxmlデータを照会する必要があります

<root>
  <Parameter>
     <Param>APP_REG_NUMBER</Param>
     <Value>AL/T/2010/86</Value>
  </Parameter>
  <Parameter>
      <Param>SUBLINEID</Param>
      <Value>235931</Value>
  </Parameter>
</root>

これは、データを SQL Server に保存する構造です。次のような出力が必要です。

Filed1     , Filed2   , APP_REG_NUMBER,  SUBLINEID
something   something , AL/T/2010/86, 235931

必要なことをしてください

4

1 に答える 1

1

これには XQuery を使用できますが、XML でキーと値のペアを再作成していることに注意してください。これにより、適切な方法でスキーマまたは XQuery/XPATH を使用することができなくなります。フォーマットを次のように変更することを検討してください。

<root>
    <APP_REG_NUMBER>AL/T/2010/86</APP_REG_NUMBER>
    <SUBLINEID>235931</SUBLINEID>
</root>

余談ですが、必要なクエリは次のとおりです。

DECLARE @testXml xml = N'<root>
  <Parameter><Param>APP_REG_NUMBER</Param><Value>AL/T/2010/86</Value></Parameter>
  <Parameter><Param>SUBLINEID</Param><Value>235931</Value></Parameter>
</root>'

SELECT 
    @testXml.value('(//Parameter[Param/text()="APP_REG_NUMBER"]/Value)[1]', 'nvarchar(50)') as APP_REG_NUMBER,
    @testXml.value('(//Parameter[Param/text()="SUBLINEID"]/Value)[1]', 'nvarchar(50)') as SUBLINEID

//Parameter構文を使用してすべてのParameter要素を検索し、それらをフィルタリングして ( ) 、内部テキストが[Param/text()="foobar"]という名前の子を持つ要素のみにします。そこから子要素に移動し、最初の結果 ( ) を返します。ValueSUBLINEID/Value(query)[1]

于 2013-10-29T20:40:04.737 に答える