我有一个表格,例如如下:
+-------+------+---------+---------+
| Col1 | col2 | values1 | values2 |
+-------+------+---------+---------+
| item1 | A4 | 5 | 87 |
| item1 | A1 | 5 | 11 |
| item1 | A2 | 5 | 25 |
| item1 | A3 | 5 | 33 |
| item1 | A5 | 0 | 18 |
| item2 | A4 | 12 | 72 |
| item2 | A1 | 6 | 12 |
| item2 | A2 | 6 | 26 |
| item2 | A3 | 6 | 34 |
| item2 | A5 | 6 | 35 |
+-------+------+---------+---------+
我想在特定条件下对上述数据进行排序,例如:按升序对值s2的数据进行排序,其中col2=A5,这意味着数据应按正常顺序进行排序,但如果col2='A5',则值s2的顺序应为升序或降序的行应排在第一位,如下所示。
+-------+------+---------+---------+
| Col1 | col2 | values1 | values2 |
+-------+------+---------+---------+
| item1 | A1 | 5 | 11 |
| item1 | A2 | 5 | 25 |
| item1 | A3 | 5 | 33 |
| item1 | A4 | 5 | 87 |
| item2 | A5 | 6 | 35 |
| item2 | A1 | 6 | 12 |
| item2 | A2 | 6 | 26 |
| item2 | A3 | 6 | 34 |
| item2 | A4 | 12 | 72 |
| item1 | A5 | 0 | 18 |
+-------+------+---------+---------+
col2='A5'中的数据应根据列values2的值按升序或降序排列。这能实现吗?
具体来说,让我们只进行col2
排序。如果我按col2下单。行将按A1、A2、A3、A4、A5排序,而不依赖于col值2
。我的问题是,当列values2
的最大值位于A5
行的col2
的A5数据的顺序应该在降序中先出现,然后是较小的,
在这里,我们假设我点col2。我们有两个数据与A5。
| item1 | A5 | 0 | 18 |
和
| item2 | A5 | 6 | 35 |
因此,第二个值应排在第一位,因为列values2
的值较高。“先到”并不意味着它应该在顶部,但我的意思是它应该在A4之后,但根据col2=A5的values2
值,较高的值应该在A4之后。
**编辑了要求。
您可以尝试使用具有两级排序的ORDER BY
子句:
SELECT Col1, col2, values1, values2
FROM yourTable
ORDER BY
CASE WHEN col2 = 'A5' THEN 0 ELSE 1 END,
values2 DESC;
这将首先放置col2='A5'
的所有记录,然后是所有其他记录。在这两个组中,第二个条件按值2
降序排序。
注:自我最初回答以来,OP已经多次更改了他的问题。最初的问题是如何先对col2='A5'
的记录进行排序,然后再对所有其他记录进行排序。
问题内容: 我有以下问题。我有三个类,A,B和C。A包含一个与B:s相关的一对一列表。B包含与C的ManyToOne关系。C包含一个名为“名称”的字段,B也包含一个名为“名称”的字段。我要完成的工作是让A列表中的项目主要按C的名称排序,然后按B的名称排序- 问题是我不知道该怎么做。可能吗? 我使用EclipseLink作为我的JPA提供程序。 编辑是,我尝试了不同的变体,例如@OrderBy(“
Nutz.Dao 提供了大多数简单的操作,在80%以上的情况下,你并不需要编写 SQL,因为 Nutz.Dao 会自动替你 生成可以使用的 SQL。但是,在某些特殊的情况下,尤其是考虑到效率等问题,直接写作 SQL 仍然是程序员们 的一个杀手锏,有了这个杀手锏,程序员们永远可以针对任何数据库做他们想要的任何操作。 在之前的时代,很多程序员将 SQL 代码同 Java 代码混杂在一起,即所谓的硬编码
问题内容: 我有这样的自定义订购需求: 我曾经想过用3个不同的选择查询的帮助下结合和。但是,我不能这样做,因为必须 在 和 之前 使用。 如何进行选择(或多个选择)以实现上面的自定义排序? 另一个解决方法可能会有所帮助,就是使此选择查询中返回的 第一条记录 成为最后一条记录,但是如何? 问题答案: 试试这个: 1亿个常量必须大于N。 这是一个简单的演示
有没有一种方法可以使用Jackson JSON处理器来执行自定义字段级别的序列化?例如,我想让 注意,age=25被编码为数字,而favoritenumber=123被编码为字符串。Jackson将编组为一个数字。在这种情况下,我希望将favoriteNumber编码为字符串。
我有这张桌子: 我需要创建一个customorderID列,其显示如下: 行按ID排序 有人能帮我吗?
本节介绍如何管理数据库对象,包括数据库和表。以下是SQL Server数据库常用的一些数据定义: 创建表 - 演示如何在数据库的特定模式中创建新表。 标识列 - 了解如何使用属性为表创建标识列。 向表添加列 - 演示如何将一个或多个列添加到现有表 修改列 - 演示如何更改表中现有列的定义。 删除列 - 演示如何从表中删除一个或多个列。 删除表 - 演示如何从数据库中删除表。 截断表 - 演示如何更