gpt4 book ai didi

sql - 我如何先由 parent 订购然后由 child 订购?

转载 作者:行者123 更新时间:2023-12-04 00:42:47 24 4
gpt4 key购买 nike

我正在尝试以这样一种方式编写我的 SQL Server 2008 查询,以便我可以根据需要循环遍历我的输出和输出 header 。我已经多次以错误的方式完成这些工作,并且让 ColdFusion 在页面内完成了繁重的工作,但需要在 SQL Server 中完成。

FeatureID ParentID Feature
--------------------------
1 0 Apple
2 0 Boy
3 2 Charles
4 1 Daddy
5 2 Envelope
6 1 Frankfurter

我希望我的查询结果集如下所示:
FeatureID ParentID Feature
--------------------------
1 0 Apple
4 1 Daddy
6 1 Frankfurter
2 0 Boy
3 2 Charles
5 2 Envelope

如果 ParentID 为 0,则表示它是一个主要类别。如果 ParentID 大于 0,则表示它是次要类别,是父级的子级。

所以 parent 需要按A-Z排序, child 需要按A-Z排序。

你能帮我正确订购吗?
SELECT FeatureID, ParentID, Feature
FROM Features
ORDER BY

最佳答案

根据您的评论,如果您知道只有两个级别,则有一个简单的解决方案:

select  *
from @Features feat
order by
case
when ParentID = 0
then Feature
else (
select Feature
from @Features parent
where parent.FeatureID = feat.ParentID
)
end
, case when ParentID = 0 then 1 end desc
, Feature
  • 按根元素的名称排序:对于根,这是 Feature 列。对于 child ,使用子查询查找根的名称。
  • 对顶部的根进行排序
  • 按名称对子项进行排序

  • Example at SE Data.

    关于sql - 我如何先由 parent 订购然后由 child 订购?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8022158/

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