You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析AdventureWorks中Sales_Store表Demographics列的XML数据?

提取AdventureWorks数据库Sales_Store表Demographics列XML数据的问题

我正在学习使用AdventureWorks数据库,需要提取Sales_Store表中Demographics列的各项数据,但不知道如何拆分其中的XML元素。该列的单条记录示例如下:

<StoreSurvey xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey">
<AnnualSales>800000</AnnualSales>
<AnnualRevenue>80000</AnnualRevenue>
<BankName>United Security</BankName>
<BusinessType>BM</BusinessType>
<YearOpened>1996</YearOpened>
<Specialty>Mountain</Specialty>
<SquareFeet>21000</SquareFeet>
<Brands>2</Brands>
<Internet>ISDN</Internet>
<NumberEmployees>13</NumberEmployees>
</StoreSurvey>

我当前使用Access,也可以切换到MySQL。尝试过用Split函数但完全无效,对应的SQL语句如下:

SELECT
    Split(Split(Demographics, '<')(1), '>')(0) AS AnnualSales,
    Split(Split(Demographics, '<AnnualRevenue>')(1), '</AnnualRevenue>')(0) AS AnnualRevenue,
    Split(Split(Demographics, '<BankName>')(1), '</BankName>')(0) AS BankName,
    Split(Split(Demographics, '<BusinessType>')(1), '</BusinessType>')(0) AS BusinessType,
    Split(Split(Demographics, '<YearOpened>')(1), '</YearOpened>')(0) AS YearOpened,
    Split(Split(Demographics, '<Specialty>')(1), '</Specialty>')(0) AS Specialty,
    Split(Split(Demographics, '<SquareFeet>')(1), '</SquareFeet>')(0) AS SquareFeet,
    Split(Split(Demographics, '<Brands>')(1), '</Brands>')(0) AS Brands,
    Split(Split(Demographics, '<Internet>')(1), '</Internet>')(0) AS Internet,
    Split(Split(Demographics, '<NumberEmployees>')(1), '</NumberEmployees>')(0) AS NumberEmployees
FROM
    Sales_Store

也尝试了ExtractValue函数的语句,同样没有效果:

SELECT
    ExtractValue(Demographics, 'StoreSurvey/AnnualSales') AS AnnualSales,
    ExtractValue(Demographics, 'StoreSurvey/AnnualRevenue') AS AnnualRevenue,
    ExtractValue(Demographics, 'StoreSurvey/BankName') AS BankName,
    ExtractValue(Demographics, 'StoreSurvey/BusinessType') AS BusinessType,
    ExtractValue(Demographics, 'StoreSurvey/YearOpened') AS YearOpened,
    ExtractValue(Demographics, 'StoreSurvey/Specialty') AS Specialty,
    ExtractValue(Demographics, 'StoreSurvey/SquareFeet') AS SquareFeet,
    ExtractValue(Demographics, 'StoreSurvey/Brands') AS Brands,
    ExtractValue(Demographics, 'StoreSurvey/Internet') AS Internet,
    ExtractValue(Demographics, 'StoreSurvey/NumberEmployees') AS NumberEmployees
FROM
    Sales_Store

内容的提问来源于stack exchange,提问作者HUCHR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:23:13