【问题标题】:XML tag.value not working in SQL 2014XML tag.value 在 SQL 2014 中不起作用
【发布时间】:2015-06-02 14:14:01
【问题描述】:

我有一个查询将行附加到逗号分隔值中。请在下面找到示例查询。这在 SQL 2012 中有效,但在 SQL 2014 中无效。

当我在 SQL 2014 中运行时出现错误:

内部查询处理器错误:查询处理器无法生成 一个查询计划。如需更多信息,请联系客户支持服务。

SELECT 
    STUFF(TagItem.IDs.value('(./text())[1]', 'varchar(max)'), 1, 2, '') AS List,
FROM @tbl1 tbl1
OUTER APPLY
(
    SELECT ', ' + [Lookup].Name
    FROM @tbl2   tbl2   
    WHERE tbl1.ID = tbl2.ID 
    FOR XML PATH(''), TYPE
) AS TagItem(IDs)

【问题讨论】:

    标签: sql sql-server xml


    【解决方案1】:

    这在我的 SQL 2008 R2 服务器上做同样的事情。我不能告诉你为什么会这样,但我可以说如果你改为CROSS APPLY,问题就会消失。在这种情况下您不需要OUTER APPLY,因为带有FOR XML PATH 的子查询将始终返回一条记录;如果没有匹配的记录WHERE tbl1.ID = tbl2.ID,它将只是NULL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-03
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多