如何使用SQL Server从表的XML列中提取值 [英] How to extract values from xml column in a table using SQL Server

查看:0
本文介绍了如何使用SQL Server从表的XML列中提取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从SQL Server表的XML列中提取值。我有此表InsuranceEntity,其中列InsuranceEntity_IDEntityXML

EntityXML列的值如下:

<insurance insurancepartnerid="CIGNA" sequencenumber="1" 
           subscriberidnumber="1234567" groupname="Orthonet-CIGNA" 
           groupnumber="7654321" copaydollaramount="1" />

如何从此EntityXML列提取subscriberidnumbergroupnumber

推荐答案

XQuery方法.nodes().value()

您可能需要调整数据类型。我全面使用了泛型VARCHAR(20)

SQL

--DDL and sample data population, start
DECLARE @tbl TABLE (InsuranceEntity_ID INT IDENTITY PRIMARY KEY, EntityXML XML);
INSERT INTO @tbl (EntityXML) VALUES
(N'<insurance insurancepartnerid="CIGNA" sequencenumber="1"
           subscriberidnumber="1234567" groupname="Orthonet-CIGNA"
           groupnumber="7654321" copaydollaramount="1"/>');
--DDL and sample data population, end

SELECT InsuranceEntity_ID
    , c.value('@subscriberidnumber', 'VARCHAR(20)') AS subscriberidnumber
    , c.value('@groupnumber', 'VARCHAR(20)') AS groupnumber 
FROM @tbl
    CROSS APPLY EntityXML.nodes('/insurance') AS t(c);

输出

+--------------------+--------------------+-------------+
| InsuranceEntity_ID | subscriberidnumber | groupnumber |
+--------------------+--------------------+-------------+
|                  1 |            1234567 |     7654321 |
+--------------------+--------------------+-------------+

这篇关于如何使用SQL Server从表的XML列中提取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆