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

SQL:按优先级排序,但最后放置0

向俊贤
2023-03-14
问题内容

我有一个(int)列,称为“优先级”。选择项目时,我希望优先级最高(最低编号)在前,而优先级最低(最高编号)在最后。

但是,没有优先级的项目(当前优先级为0)应在具有优先级的项目之后的其他列中列出。

换一种说法。如果我有以下优先事项:

 1 2 0 0 5 0 8 9

我如何像这样对它们进行排序:

 1 2 5 8 9 0 0 0

我想我可以使用Int.max而不是0,但是0构成了一个很好的默认值,我会尝试保留它。


问题答案:

尝试:

order by case priority when 0 then 2 else 1 end, priority


 类似资料:
  • 我正在编写一个最小优先级队列和一个最大优先级队列,如下所示: 输入数组的数字将一个接一个地添加到队列中。然而,当数组[12,4,5,3,8,7]是一个样本输入,打印优先队列的输出是: MIN:[3.0, 4.0, 5.0, 12.0, 8.0, 7.0]MAX:[12.0, 8.0, 7.0, 3.0, 4.0, 5.0] 我定义的比较器有什么问题吗?提前感谢你的帮助。

  • 我有一个,名为,其中包含类型的对象。 您可以在所有车辆上调用该方法。 我要做的是排序,这样车辆被赋予更高的优先级,并被放在队列的前面。 我假设我必须在这里使用一个比较器,但不知道怎么做。

  • 我正在处理一个项目,在这个项目中,我需要对结果进行分页,以便加载DB中具有最高优先级的用户。else块是用户的初始加载,if块应该控制分页,但是我在分页调用时得到的结果是空的(0个文档),同时在初始调用中成功地获取了用户。 我有41个测试文档,限制设置为20个,所以我应该得到2个整页+1个额外的用户在第三个,但我只能得到(用户)文档的第一页。我查看了分页文档,并且我已经为firestore构建了索

  • 问题内容: 我有一个庞大的产品数据库,每个星期天,我的脚本都会激活50个新产品。问题是,根据我脚本中的某些规则,我发现我应该优先激活一些产品。(以您的示例为例,它应该始终优先激活其中名称为“ hello kitty”和“ meshuggah”的产品,然后再进行其他操作) 我的数据库表包含有关产品的信息和唯一ID。可以说脚本找到了这些ID中的5个,标题中有hello kitty。 因此,我该如何进行

  • 优先级队列未维护排序顺序我是否未正确执行?输出时出现错误的排序顺序? 产出:[1, 5, 8, 19, 9]

  • 假设我有两个进程等待使用抢先最短作业优先(SJF)执行。 在 Time = 2 时,两个进程的突发时间相同,即 3。SJF 排序会运行进程 2,因为它具有更高的初始突发时间,还是会运行进程,因为它们的突发时间当前相同? 谢谢:)