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
使用xml.nodes()功能返回所有实例_Xml_Sql Server 2008_Nodes_Cross Apply - Fatal编程技术网

使用xml.nodes()功能返回所有实例

使用xml.nodes()功能返回所有实例,xml,sql-server-2008,nodes,cross-apply,Xml,Sql Server 2008,Nodes,Cross Apply,我有以下代码,但它只返回MonthDate和'Value'值的第一个实例。我一直在试验.nodes()和交叉应用,但无法理解语法,我不断得到错误 无效的对象名称“xmlContent.nodes” 代码: 当我删除交叉应用条件时,它会返回月日和值的第一个实例,但我想要全部 谢谢你很可能,你需要这样的东西: SELECT Top 1000 ID, MonthDate = XCol.value('(MonthDate)[1]', 'DATETIME'), [Value]

我有以下代码,但它只返回
MonthDate
'Value'
值的第一个实例。我一直在试验
.nodes()
交叉应用
,但无法理解语法,我不断得到错误

无效的对象名称“xmlContent.nodes”

代码:

当我删除
交叉应用
条件时,它会返回
月日
值的第一个实例,但我想要全部


谢谢你

很可能,你需要这样的东西:

SELECT Top 1000 
    ID, 
    MonthDate = XCol.value('(MonthDate)[1]', 'DATETIME'),
    [Value] = XCol.value('(Value)[1]', 'FLOAT') 
FROM
    @ngTest 
CROSS APPLY 
    [xmlContent].nodes('/MonthlyMedianResults/MonthlyAmount') AS XTbl(XCol)
.nodes()
调用创建一个带有单个XML列(
XCol
)的“虚拟”表(
XTbl
),其中每行表示每个
节点的XML片段(并且必须包含一个
作为表别名(列别名))
到您的
交叉应用
部分,以便您可以在查询中引用此虚拟表)


您需要将XQuery
.value()
应用到该虚拟表以从该虚拟表或XML片段中获取值。

感谢您的快速建议,不幸的是,我没有从上述代码中获得任何结果。我已经验证了@ngTest使用“XMLContent”xml填充,但我的结果返回为空,没有错误。我应该在任何地方引用XTbl吗?
SELECT Top 1000 
    ID, 
    MonthDate = XCol.value('(MonthDate)[1]', 'DATETIME'),
    [Value] = XCol.value('(Value)[1]', 'FLOAT') 
FROM
    @ngTest 
CROSS APPLY 
    [xmlContent].nodes('/MonthlyMedianResults/MonthlyAmount') AS XTbl(XCol)