suppose I have a table, mydata , that has a column xmldata whose values are text in XML format such as
<maindataheading>
<firstleveldata>
<pricedata pricetype="normal">123</pricedata>
</firstleveldata>
</maindataheading>
how do I extract <pricedata pricetype="normal">123</pricedata>
from the xmldata column?
Below is sample SQL for retrieving a varchar value from XML:
DECLARE @MyXmlData XML
-- Read XML data into variable
SELECT @MyXmlData = xmldata
FROM MyData
-- Check if the XML node exists before attempting to retrieve it
IF @MyXmlData.exist('/maindataheading/firstleveldata/pricedata') = 1
BEGIN
DECLARE @MyDataValue VARCHAR(255)
-- Get specific XML data
SELECT @MyDataValue = ParamValues.ID.Value('.', 'varchar(255)')
FROM @MyXmlData.nodes('/maindataheading/firstleveldata/pricedata') AS ParamValues(ID)
IF @MyDataValue IS NOT NULL
BEGIN
-- Do something with data
END
END
select xmldata.query('/maindataheading/firstleveldata/pricedata')
from mydata
Result:
<pricedata pricetype="normal">123</pricedata>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.