开发者社区> 问答> 正文

从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;

展开
收起
祖安文状元 2020-01-05 14:19:54 536 0
1 条回答
写回答
取消 提交回答
  • 使用以下查询

    select *, try_cast(xmlrecord as xml).value('(row/c2)[1]', 'nvarchar(500)') as c2
    from dataTable
    
    2020-01-05 14:20:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载