当前位置: 首页 > 面试题库 >

按多列排序行选择

郦翰学
2023-03-14
问题内容

我有一个数据库

id    |     parentid     |       name
1     |        0         |      CatOne
2     |        0         |      CatTwo
3     |        0         |      CatThree
4     |        1         |      SubCatOne
5     |        1         |      SubCatOne2
6     |        3         |      SubCatThree

我怎样才能选择该猫排序idparentid?那是

CatOne 1
--SubCatOne 4
--SubCatOne2 5
CatTwo 2
CatThree 3
--SubCatThree 6

问题答案:

这应该做…除了名称的双破折号“-”以外…

SELECT 
      t1.name,
      t1.id
   FROM 
      Table1 t1
   ORDER BY 
      case when t1.parentID = 0 then t1.ID else t1.ParentID end,
      case when t1.parentID = 0 then '1' else '2' end,
      t1.id

按第一个案例的顺序/何时将所有属于最高级别的项目放在第一层,或者将所有项目放在第一层的ID的第二层。因此,如果您有超过1000个条目,尝试使用提供的父*
1000个示例hack就不会成为问题。当父ID = 0时,第二个案例/时间将强制进入其分组列表的TOP及其下的所有子条目,但在下一个父ID之前。

但是,如果您确实想要双破折号,请更改为

SELECT 
      if( t1.ParentID = 0, '', '--' ) + t1.name name,
     <rest of query is the same>


 类似资料:
  • 我用的是拉威尔的背包,积垢舱。 如何将orderby()用于多列? 例子: 我看到src和orderby只接受一个参数。 有什么建议吗?

  • 问题内容: 它有点难以解释。跳到示例可能会更容易。 一个表有一个ID和四列,每列允许为空。 有x行数。(通常小于4)并且在整个列中最多只能使用4个不同的值。 我希望返回最多4行,其中结果集中的每一行基本上都是一列值,其中该值是从顶部保留Col编号开始从右向左选择的。如果另一行的值不是列唯一,则将其移至下一个可用列。 例子: 如果我有: 我想回来 和 给 和 给 谢谢!当存在非唯一列并且值之间存在空

  • 我想从数据帧中选择一组列,但这些列中只有一些是按顺序排列的。例如,我想写一些类似于: 这里也提出了类似的问题,但答案没有帮助:按标签选择多个列(熊猫) 在我的例子中,手工操作太麻烦了。正则表达式是可能的,但很复杂,因为切片是面向数字的,而不是面向文本的。那么,最简单的方法是什么?

  • 我有下面的dataframe示例。 给定一个模板,我想根据列的新顺序更改行的顺序,因此它看起来像: 我找到了下面的线程,但是洗牌是随机的。Cmmiw。 洗牌数据帧行

  • 问题内容: 我有一个清单清单: 如果要按一个元素(例如,高/短元素)排序,可以通过进行。 如果我想作为排序依据两个高大和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法? 问题答案: 键可以是返回元组的函数: 或者,你可以使用来实现相同的效果(速度更快,并且避免了Python函数调用): 并请注意,你可以在此处使用而不是使用,然后重新分配:

  • 问题内容: 我有一个Java对象列表,希望根据多个字段进行排序。 是否可以使用或接口根据多个字段对列表进行排序?我看到的所有示例仅根据一个领域进行排序。换句话说,可以按“校园”或“教师”或“建筑”进行排序。我想按“校园”,“教师”,“建筑”(因为它在SQL中存在)进行排序 问题答案: 您的比较器如下所示: 基本上,只要到目前为止已比较的属性相等(),它就会继续比较类的每个连续属性。