以下のSQLを使用してxmlからデータを抽出できることがわかりました
--XML DATA SAMPLE
DECLARE @xmlvar xml
SET @xmlvar='
<NewDataSet>
<param>
<SearchField>JID</SearchField>
<FilterCondition>%</FilterCondition>
<ConditionData>4000</ConditionData>
<MatchCase>0</MatchCase>
<Table>MyTableName</Table>
</param>
<param>
<SearchField>Specialist</SearchField>
<FilterCondition>=</FilterCondition>
<ConditionData>Nigel Graham</ConditionData>
<MatchCase>0</MatchCase>
<Table>MyTableName</Table>
</param>
</NewDataSet>'
SELECT A.B.value('(SearchField)[1]', 'VARCHAR(255)' ) SearchField,
A.B.value('(FilterCondition)[1]', 'VARCHAR(25)' ) Operator,
A.B.value('(ConditionData)[1]', 'VARCHAR(MAX)' ) ConditionData,
A.B.value('(MatchCase)[1]', 'BIT' ) MatchCase,
A.B.value('(Table)[1]', 'VARCHAR(MAX)' ) TableName
FROM @WhereClause_XML.nodes('/NewDataSet/param') A(B)
上記のxmlは機能していますが、上記のタイプのSQLに精通していません。では、(FilterCondition)[1]または(ConditionData)[1]の意味を教えてください。なぜ括弧[1]を括弧[0]または[2]にしないのですか。
上記のxmlがどのように機能するか説明してください。ありがとう