gpt4 book ai didi

sql-server - 在按 SQL Server 2008 分组的选择查询中选择一个 xml 类型的列

转载 作者:数据小太阳 更新时间:2023-10-29 01:46:19 25 4
gpt4 key购买 nike

我正在编写一个选择查询,其中我正在获取多个列(通过连接 3-4 个表)。我使用 group by 子句对结果进行分组。

查询 -

    select ci.Candidate_Id, ci.FirstName, ci.DetailXML
from Candidate_Instance ci
where ci.Candidate_Instance_Id=2
group by
ci.Candidate_Id, ci.FirstName, ci.DetailXML

其中一个表有一列是 XML 数据类型。当我在选择列表中添加列时,出现此错误 -

列“table.myXML”在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。

当我在 group by 子句中添加列时,出现此错误 -

无法比较或排序 XML 数据类型,除非使用 IS NULL 运算符。

我很困惑如何解决这个问题。我想从列中获取 XML 数据。

谢谢

最佳答案

您不能按 XML 或 TEXT 列分组,您首先需要转换为 varchar(max)

select ci.Candidate_Id, ci.FirstName, convert(xml,convert(varchar(max),ci.DetailXML)) DetailXML
from Candidate_Instance ci
where ci.Candidate_Instance_Id=2
group by
ci.Candidate_Id, ci.FirstName, convert(varchar(max),ci.DetailXML)

在第一行,它被转换为 varchar(max) 以匹配 GROUP BY 子句,稍后它被重新转换回 XML。

关于sql-server - 在按 SQL Server 2008 分组的选择查询中选择一个 xml 类型的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com