我知道下面的 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是如何工作的。谢谢