0

假设我有一个表mydata,它有一个xmldata列,其值是 XML 格式的文本,例如

<maindataheading>
    <firstleveldata>
        <pricedata pricetype="normal">123</pricedata>
    </firstleveldata>
</maindataheading>

如何<pricedata pricetype="normal">123</pricedata>从 xmldata 列中提取?

4

2 回答 2

0

下面是用于从 XML 检索 varchar 值的示例 SQL:

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
于 2014-04-28T11:30:08.227 回答
0
select xmldata.query('/maindataheading/firstleveldata/pricedata')
from mydata

结果:

<pricedata pricetype="normal">123</pricedata>
于 2014-04-28T11:55:45.240 回答