Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 Server 2008数据库列中的XML文档_Xml_Sql Server 2008_Types - Fatal编程技术网

遍历SQL Server 2008数据库列中的XML文档

遍历SQL Server 2008数据库列中的XML文档,xml,sql-server-2008,types,Xml,Sql Server 2008,Types,我有一个表,其中包含一个XML数据类型的列。我希望在整个表上放置一个视图,包括XML数据类型列。该视图将展开XML数据类型列的内容。在遍历整个XML文档并从特定的XML节点获取值时,我遇到了一个问题 我正在使用这个SQL查询,它只获取FuelPathwayCode XML节点的第一个值实例。我希望遍历整个XML文档,并在一个结果集中查询/FuelPathwayCode XML节点的所有值 SELECT UploadFileID, Year, Quarter, FileConten

我有一个表,其中包含一个XML数据类型的列。我希望在整个表上放置一个视图,包括XML数据类型列。该视图将展开XML数据类型列的内容。在遍历整个XML文档并从特定的XML节点获取值时,我遇到了一个问题

我正在使用这个SQL查询,它只获取FuelPathwayCode XML节点的第一个值实例。我希望遍历整个XML文档,并在一个结果集中查询/FuelPathwayCode XML节点的所有值

SELECT 
   UploadFileID, Year, Quarter, 
   FileContent.value('(LCFS-Report/Fuel/FuelPathwayCode)[1]', 'varchar(100)') as FuelPathwayCode 
FROM LC_UploadXM
我正在寻找这样的结果集:

UploadFileID  Year  Quarter  FuelPathWayCode   PhysicalPathwayCode
8             2010  4        CARBOB001         PP001
8             2010  4        CARBOB002-HIGH    PP001  
表列:

UploadFileID,
Year,
Quarter,
CompanyID,
FileType,
FileContent,
FileName,
Description,
Success,
AddBy,
AddDttm

值是一个标量函数。请尝试改用query()


您需要交叉应用并选择所需的XML,然后需要对以下内容执行一系列
.value
调用:

SELECT 
   UploadFileID, Year, Quarter, 
   FC.Node.value('(FuelPathwayCode)[1]', 'varchar(100)') as FuelPathwayCode 
FROM 
   LC_UploadXM
CROSS APPLY 
   FileContent.nodes('/LCFS-Report/Fuel') as FC(Node)
这基本上会获取XPath
/LCFS Report/Fuel
中存在的所有XML节点,并将它们当作表中的行来使用(模式为FC,“虚拟表”名称为“节点”-这些节点可以随意使用,完全由您决定),然后将这些行交叉应用于基本选择

现在可以查询“虚拟表”FC.节点的各个值,例如,XML中的“指针”已经位于XML中的“燃料”子节点上,现在可以使用
.value()
调用访问其中的各个值


查看Alex Homer的介绍文章-优秀资源

这很接近,但这不是我想要的。如何提取每个FuelPathwayCode XML节点的值?请尝试开始使用编辑器工具栏上的“代码”按钮(010 101)高亮显示部分并将其格式化为代码内容,如SQL语句,任何应该固定的内容(如表值)都可以从正确格式化中受益匪浅!