从NVARCHAR(MAX)列获取xml值

问题描述 投票:0回答:1

我阅读了很多相关文章,并尝试从类型为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;
sql-server nvarchar xmltype
1个回答
0
投票

使用以下查询

select *, try_cast(xmlrecord as xml).value('(row/c2)[1]', 'nvarchar(500)') as c2
from dataTable
© www.soinside.com 2019 - 2024. All rights reserved.