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

SQL查询“ ORDER BY”在3个不同的列上

郝峰
2023-03-14
问题内容

给定下表(原始表),我需要运行查询,以便对所有内容进行排序以反映结果表。我尝试使用ORDER
BY来执行此操作,我可以使前两个要求正常工作(请参阅按要求排序),但是第三个要求是我迷路的地方。

现在,我的查询如下:

sqlCom.CommandText = "SELECT * FROM Questions WHERE Identifier = @identifier AND Flag <> 'DELETED' ORDER BY Status DESC,  Number * 1";

我一直在阅读使用a的知识,ORDER BY CASE WHEN...THEN...END但我没有正确理解语法。我不断收到语法错误,因此我什至无法运行它。

订购要求:

  1. 对状态列进行排序,顶部的“ open”值,底部的“ closed”值(此方法有效)
  2. 将“编号”列订购为连续的(“状态”列的底部关闭,顶部打开)(正在运行)
  3. 对“标志”列进行排序,以使空值位于顶部,而其他值则位于底部(在“状态”关闭的排序上方)

据我所知,这ORDER BY CASE就是我想要的,但是我似乎无法正确理解语法。在此先感谢您提供的任何帮助。

原始表

| Flag | Number | Status |
|------------------------|
| a    |    1   |  open  |
|      |    5   |  open  |
|      |    3   | closed |
| a    |    4   |  open  |
| a    |    2   | closed |

结果表

| Flag | Number | Status |
|------------------------|
|  a   |    1   |  open  |
|  a   |    4   |  open  |
|      |    5   |  open  |
|      |    3   | closed |
|  a   |    2   | closed |

问题答案:
SELECT * FROM Questions
WHERE Identifier = @identifier AND Flag <> 'DELETED' 
ORDER BY Status DESC,  Number,
(case when flag is null then 1 else 0 end) desc, flag

你可以试试看



 类似资料:
  • 我有桌子: 行程:Trip_Num、Trip_Type等 用户的出差历史记录:Username、Trip_Num等 我正在用php做一个项目,需要为一个特定的用户(通过他的用户名)做一个SQL查询--需要知道用户的Trips历史表中Trip_Num的Trip_Type。 附上我的表格: 更新:我需要计算trip_type中的每个值。我的意思是我想看到“步行”-4次,“自行车”-3次,这很好?...

  • 问题内容: 第一次问有关Stack Overflow的问题…令人惊讶的资源,但是有一点让我作为SQL的新手感到困惑。 我有三个表,我想获取与鲍勃的学生相关的所有导师的姓名。 表1:老师 表2:学生 表3:MENTOR_RELATIONSHIPS 表4:导师 我想查询一下鲍勃学生的所有导师。因此,所有学生的导师 在这种情况下,肖恩就是结果。 我知道这与Joins有关,还是可以使用常规查询找到它??

  • 但是生成的SQL查询是 正如您所看到的,括号改变了,我相信两个查询中的条件并不相同。是虫子吗?使用hibernate和spring以及postgresql数据库。

  • 我的查询没有使用参数对我的帖子进行排序。 一点背景: 我在foreach语句中,该语句循环遍历“category”id的自定义分类法。在该foreach语句中,我试图调用一个新的WP_查询,从该foreach循环的每个“类别”获取帖子。我的args数组如下所示: 和都是此post\u类型中我的自定义分类中的数组。 和根本不起作用,我想不出原因。

  • 下面是目前为止我所想到的伪代码。任何帮助都将不胜感激!谢谢! 我检查了Table API,但对于流,似乎不支持很多操作,例如OrderBy。

  • 我想用不同的列值执行相同的SQL查询,即:我有一个如下表: 从上表中,我想获取员工组的和。请建议我如何在不执行多次的情况下进行查询以获取上述数据。