gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:49:35 26 4
gpt4 key购买 nike

我正在尝试以一种可以根据需要循环输出和输出 header 的方式编写 SQL Server 2008 查询。我已经多次以错误的方式完成这些工作,让 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
  1. 按根元素的名称排序:对于根元素,这是特征列。对于 child ,使用子查询查找根的名称。
  2. 将根排序在顶部
  3. 按名字给 children 排序

Example at SE Data.

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

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