sql >> データベース >  >> RDS >> Sqlserver

SQL を使用して個々の xml ノードを選択する

    query() メソッド を使用する必要があります。 XML の一部を取得したい場合。

    declare @XML xml
    
    set @XML = 
    '
    <root>
      <row1>
        <value>1</value>
      </row1>
      <row2>
        <value>2</value>
      </row2>
    </root>
    '
    
    select @XML.query('/root/row2')
    

    結果:

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

    特定のノードから値が必要な場合は、value() メソッド<を使用する必要があります。 /a> .

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

    結果:

    2
    

    更新:

    XML を複数の行に分割する場合は、nodes() メソッド<を使用します。 /a> .

    値を取得するには:

    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)
    

    結果:

    (No column name)
    1
    2
    

    XML 全体を取得するには:

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

    結果:

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



    1. 2行はどのように挿入されますか?

    2. DBユーザーパスワードをコマンドラインツールmysqladminに渡す方法はありますか?

    3. クエリセットのランクフィールドに注釈を付ける適切な方法

    4. サーバー名、テーブル、および列の詳細を検索するための SQL Information_Schema 構文