如何使用SQL Server从表的xml列中提取值

远09

我正在尝试从SQL Server中的表的XML列中提取值。我的这张桌子InsuranceEntity有列InsuranceEntity_IDEntityXML

EntityXML列具有以下值:

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

我怎样才能提取subscriberidnumbergroupnumber从该EntityXML列?

伊扎克·哈宾斯基

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 |
+--------------------+--------------------+-------------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章