从SQL中的XML数据提取字段

时间:2018-11-22 19:12:22

标签: sql sql-server xml

我遇到了一个问题,因为我从没做过。

我有一个带有以下内容的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

问题可能来自“空格”,但不确定。

2 个答案:

答案 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