我阅读了很多相关文章,并尝试从类型为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