sql - 如何使用 SQL Server 从表中的 xml 列中提取值
问题描述
我正在尝试从 SQL Server 表中的 XML 列中提取值。我有这个InsuranceEntity
带有列InsuranceEntity_ID
和的表EntityXML
。
该EntityXML
列具有以下值:
<insurance insurancepartnerid="CIGNA" sequencenumber="1"
subscriberidnumber="1234567" groupname="Orthonet-CIGNA"
groupnumber="7654321" copaydollaramount="1" />
如何从该列中提取subscriberidnumber
和?groupnumber
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 |
+--------------------+--------------------+-------------+
推荐阅读
- laravel - Laravel 无法打开流:CentOs7 上 Dompdf lib 字体权限的权限被拒绝
- html - PrimeNG
如何保持单击菜单项处于选中状态(Angular 7) - azure - 发布 Azure 域
- django - 当文件池在 React 上发布文件时,Django Rest Framework 返回错误请求
- c# - Asp.net Core RequestSizeLimit 仍然执行动作
- ios - 在背景上渲染 Alpha 通道视频 (AVFoundation, Swift)
- swift - 我的图像 addSubview 添加了比预期更大的视图
- docker - 如何检查容器的 IP,获取它并将其添加到具有本地域名解析的 /etc/hosts 文件中
- ffmpeg - 色度键我的过滤白色背景命令有效,但过滤白色和黑色?
- c# - C# 关于对象创建