我遇到了一个问题,因为我从没做过。
我有一个带有以下内容的SQL表:
ID int;
xml_record xml;
xml记录看起来像这样:
<root xml:space="preserve" id="XXX">
<c1>Data1</c1>
<c2>Data2</c2>
<c3>Data3</c3>
...
<cn>DataN</cn>
</root>
但是我尝试使用以下查询没有成功(返回null):
SELECT xml_record.value('c1[1]','varchar(50)') as value_c1
FROM myTable
问题可能来自“空格”,但不确定。
答案 0 :(得分:2)
您只需要修复表达式:
SELECT xml_record.value('(/root/c1)[1]','varchar(50)') AS value_c1
FROM ...
答案 1 :(得分:0)
SELECT
xml_record.value
( '(/root/c1/text())[1])',
'varchar(50)') as value_c1
FROM myTable
否则删除第一行xml