【问题标题】:How do I sort a table based on multiple levels in SQL?如何在 SQL 中根据多个级别对表进行排序?
【发布时间】:2020-05-13 15:41:51
【问题描述】:

我有一个要排序的 BOM,如附图所示,我似乎无法在 SQL 中对多级进行排序。 在这个列表中,孩子可以是父母。 位置似乎是一个不错的方法,但看看位置 3。当级别发生变化时,它们有两个。 (如果错了会加入吗?) 级别是项目的级别。这是一致的。 如果有人可以提供帮助,我将不胜感激。


错误的(未排序的)表

itemSpecID  +  ParentID  +  ChildID  +  Position  +  Level  +  ItemSpecStrucID  +  ItemNo         +
151382      +  151382    +  150776   +  17        +  1      +  469912           +  FOAM-KIT-00595 +
151382      +  151382    +  151383   +  0         +  1      +  469908           +  CHAR-FRM-00708 +
151382      +  151383    +  151372   +  2         +  2      +  469916           +  HDWR-MIS-00024
151382      +  151383    +  151373   +  3         +  2      +  469917           +  HDWR-MIS-00025
151382      +  151383    +  151374   +  4         +  2      +  469918           +  HDWR-MIS-00026
151382      +  151383    +  151384   +  1         +  2      +  469915           +  HDWR-MIS-00023
151382      +  151382    +  151344   +  4         +  1      +  469910           +  SRVC-GEN-00014
151382      +  151382    +  149441   +  5         +  1      +  469911           +  PANL-BAK-00284
151382      +  151382    +  149079   +  3         +  1      +  469909           +  PANL-SAT-00300
151382      +  151382    +  150765   +  18        +  1      +  469913           +  HDWR-BRK-00015
151382      +  151382    +  150810   +  20        +  1      +  469914           +  FABR-DOUX-00004

需要最终排序

itemSpecID  +  ParentID  +  ChildID  +  Position  +  Level  +  ItemSpecStrucID  +  ItemNo
151382      +  151382    +  151383   +  0         +  1      +  469908           +  CHAR-FRM-00708
151382      +  151383    +  151384   +  1         +  2      +  469915           +  HDWR-MIS-00023
151382      +  151383    +  151372   +  2         +  2      +  469916           +  HDWR-MIS-00024
151382      +  151383    +  151373   +  3         +  2      +  469917           +  HDWR-MIS-00025
151382      +  151383    +  151374   +  4         +  2      +  469918           +  HDWR-MIS-00026
151382      +  151382    +  149079   +  3         +  1      +  469909           +  PANL-SAT-00300
151382      +  151382    +  151344   +  4         +  1      +  469910           +  SRVC-GEN-00014
151382      +  151382    +  149441   +  5         +  1      +  469911           +  PANL-BAK-00284
151382      +  151382    +  150776   +  17        +  1      +  469912           +  FOAM-KIT-00595
151382      +  151382    +  150765   +  18        +  1      +  469913           +  HDWR-BRK-00015
151382      +  151382    +  150810   +  20        +  1      +  469914           +  FABR-DOUX-00004

【问题讨论】:

  • 请检查您的第二张表不是已排序的。
  • 我在我的表格中资助了一个对我有用的专栏。有没有办法删除这个问题?我不希望任何人搜索并找到没有解决方案的问题。

标签: sql multi-level


【解决方案1】:

我在表格中找到了一个列,它可以帮助我按照我想要的方式进行排序。不幸的是,这个问题不会使任何人受益,我发现没有办法删除这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2016-06-12
    • 1970-01-01
    • 2020-05-31
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多