SQL SERVER 解析XML

sql 复制代码
DECLARE @xml XML = '
<Customers>
    <Customer CustomerID="C001">
        <Name>王五</Name>
        <Contacts>
            <Phone>13800138000</Phone>
            <Email>wangwu@example.com</Email>
        </Contacts>
        <Orders>
            <Order>
                <OrderID>2001</OrderID>
                <Amount>3000.00</Amount>
            </Order>
            <Order>
                <OrderID>2002</OrderID>
                <Amount>1500.00</Amount>
            </Order>
        </Orders>
    </Customer>
</Customers>'

-- 解析嵌套结构
SELECT 
    CustomerNode.value('@CustomerID', 'NVARCHAR(20)') AS CustomerID,
    CustomerNode.value('(Name)[1]', 'NVARCHAR(50)') AS CustomerName,
    CustomerNode.value('(Contacts/Phone)[1]', 'NVARCHAR(20)') AS Phone,
    CustomerNode.value('(Contacts/Email)[1]', 'NVARCHAR(100)') AS Email,
    OrderNode.value('(OrderID)[1]', 'INT') AS OrderID,
    OrderNode.value('(Amount)[1]', 'DECIMAL(10,2)') AS Amount
FROM @xml.nodes('/Customers/Customer') AS T(CustomerNode)
CROSS APPLY CustomerNode.nodes('Orders/Order') AS O(OrderNode)

这段SQL代码演示了如何解析XML格式的嵌套客户数据。通过XQuery方法,代码从XML变量中提取客户信息(ID、姓名、电话、邮箱)以及每个客户的多个订单明细(订单ID、金额)。使用nodes()方法分别定位客户节点和订单节点,再通过value()方法提取具体字段值,最后使用CROSS APPLY将客户信息与订单明细关联输出。这种技术适用于处理包含多层嵌套结构的XML数据。

相关推荐
风萧萧199910 小时前
JAVA :JSONObject转换为XML
xml·java·python
马优晨2 天前
pom.xml 中 jquery webjars 依赖解释
xml·前端·jquery·jquery webjars·webjars依赖
楚识科技3 天前
定制 OCR 服务:非标证件与表格的 XML 字段映射实践
xml·ocr
光泽雨5 天前
JSON /XML转换
xml·json
我命由我123455 天前
UI 设计 7 种排列方式
xml·学习·ui·html·产品运营·产品经理·学习方法
ly768911 天前
XML 从入门到实践:语法、命名空间、XPath、XSD 与 Java 安全解析
xml·java·python
欧特克_Glodon14 天前
OpenCV计算机视觉开发入门与实践<十二>:XML 和 YAML 文件读写
xml·c++·opencv·计算机视觉
程序员-珍14 天前
安卓开发:同名 styles.xml 在不同分支/文件夹的合并规则
android·xml·前端
LitchiCheng16 天前
还在改xml调相机?MuJoCo交互式可视化调整相机安装位置
xml·数码相机