Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从SQL中的XML数据提取字段_Sql_Sql Server_Xml - Fatal编程技术网

从SQL中的XML数据提取字段

从SQL中的XML数据提取字段,sql,sql-server,xml,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> 问题可能来自“空

我有一个问题,因为我以前从未这样做过

我有一个包含以下内容的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>
问题可能来自“空间”,但不确定

   SELECT 
   xml_record.value
   ( '(/root/c1/text())[1])', 
  'varchar(50)') as value_c1
   FROM myTable 
否则请删除第一行xml

否则请删除第一行xml


您只需修复表达式:

SELECT xml_record.value('(/root/c1)[1]','varchar(50)') AS value_c1
FROM ...

您只需修复表达式:

SELECT xml_record.value('(/root/c1)[1]','varchar(50)') AS value_c1
FROM ...

谢谢你,我会尽快的。但事实上,这张唱片是一条很大的线。我怎样才能去掉第一行?@HimanshuAhuja为什么在
//c1
之前将斜杠加倍?这将触发一个深度搜索,这在这里是不需要的。。。此外,你应该选择@Shnugo my bad实际上我从另一篇文章中引用了你的观点现在得到了你的观点
/c1
将触发所有c1,正如你正确地说的深度搜索,并且没有意识到“
text()
用于选择标记内的文本。谢谢你的帮助:)谢谢你,我会尽快尝试的。但事实上,这张唱片是一条很大的线。我怎样才能去掉第一行?@HimanshuAhuja为什么在
//c1
之前将斜杠加倍?这将触发一个深度搜索,这在这里是不需要的。。。此外,你应该选择@Shnugo my bad实际上我从另一篇文章中引用了你的观点现在得到了你的观点
/c1
将触发所有c1,正如你正确地说的深度搜索,并且没有意识到“
text()
用于选择标记内的文本。感谢您的帮助:)XML支持非常特定于供应商-因此请添加一个标记以指定您是否正在使用
mysql
postgresql
sql server
oracle
db2
-或其他完全不同的东西。XML支持是高度特定于供应商的-因此请添加一个标记,以指定您使用的是
mysql
postgresql
sqlserver
oracle
db2
-还是其他完全不同的东西。