sql-server - 从 NVARCHAR(MAX) 列获取 xml 值
问题描述
我阅读了许多相关帖子,并尝试从具有NVARCHAR(MAX)
任何特定标签类型的列中获取 xml 值。
CREATE TABLE dataTable (RECID NVARCHAR(MAX),XMLRECORD NVARCHAR(MAX));
我的 XMLRECORD 列将包含一个带有类似标签的数据
<row id='1'>
<c2>Account-sample</c2>
</row>
下面附上的是我创建的一个选择查询,它产生了一个 CLOB 而不是实际值。关于如何获得实际价值的任何想法?(即账户样本)
select b.x.value('data(/row/c2)[1]', 'NVARCHAR(max)')
from dataTable a
cross apply(select cast(cast(XMLRECORD as VARCHAR(max)) as XML) x) b;
解决方案
使用以下查询
select *, try_cast(xmlrecord as xml).value('(row/c2)[1]', 'nvarchar(500)') as c2
from dataTable
推荐阅读
- javascript - 反应组件中的地图无法调用 map.get()
- sql - 构造一个 SQL 查询,其中包含来自单个表的两条记录的结果
- ruby-on-rails - 生产中的 Rails 重定向循环,开发中一切正常
- javascript - 无法连接 websocket 出现错误 - WebSocket 握手期间出错:意外的响应代码:404
- android - 在 google play store 上增加新应用程序的 android 应用程序兼容性
- java - 如何正确输出 arcsin,并解决这个数学任务?
- docker - 跨容器重用配置
- vbscript - Python 到 VBScript 的转换
- r - 如何在地图内划定热图
- javascript - AJAX 未触发使用 PDO 从数据库检索的预设功能