XML数据类型和Sql server 2005

时间:2011-01-18 13:08:29

标签: sql xml sql-server-2005

我有一个表,其中一个字段类型是xml,并且数据以xml格式保存。我的xml是

<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <DELETED>
    <STOCK_CODE>111111</STOCK_CODE>
    <MakeID>GB00000001</MakeID>
    <ModelID>GB00000001</ModelID>
    <EngineSize />
    <YearMakeFrom>0</YearMakeFrom>
    <YearMakeTo>0</YearMakeTo>
    <Automatic>1</Automatic>
    <SemiAutomatic>1</SemiAutomatic>
    <Manual>0</Manual>
    <OtherInfo />
    <Status>UPDATED</Status>
  </DELETED>
</Record>

所以请告诉我如何在sql server 2005中查询上面的xml文档。请帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

你没有说出你正在寻找的东西 - 所以这只是猜测。

假设您有一个满行的表,每行都有一个包含上述结构的XML列XmlData,并且您希望从该XML获取Stock_CodeModelID

在这种情况下,您可以使用以下内容:

SELECT 
    ID,
    XmlData.value('(/Record/DELETED/STOCK_CODE)[1]', 'BIGINT') AS 'StockCode',
    XmlData.value('(/Record/DELETED/ModelID)[1]', 'VARCHAR(25)') AS 'ModelID' 
FROM 
    dbo.YourTable
WHERE
    (some condition)

这就是你要找的东西吗?如果没有:请澄清你的问题!