tom*_*.do 9 xml sql-server-2008
请考虑以下事项:
DECLARE @xml XML
SET @xml =
'<Capture>
<Data><DataType>Card Number</DataType><Value>1234567898765</Value></Data>
<Data><DataType>Expiry Date</DataType><Value>1010</Value></Data>
</Capture>'
SELECT @xml.query('//*[text()="Expiry Date"]/text()')
Run Code Online (Sandbox Code Playgroud)
返回:
Expiry Date
Run Code Online (Sandbox Code Playgroud)
而不是检索<DataType/>文本节点如何检索<Value/>文本节点值<DataType/>是"到期日期" 的文本节点?
mar*_*c_s 12
试试这个:
SELECT
@xml.value('(//Data[DataType="Expiry Date"]/Value/text())[1]', 'varchar(50)')
Run Code Online (Sandbox Code Playgroud)
您选择<Data>具有该节点的任何节点<DataType>Expiry Date</DataType>,并为该节点选择其<Value>内部文本.