Sql 按自定义重复模式排列行
有没有一种方法可以在自定义模式中对行进行排序。例如: 假设我有一个表(Id、type、createdDate),其中type列的值为a、B、C。我希望结果集的重复模式为 B,按类型内的createdDate排序。谢谢 这里有一个例子 表格Sql 按自定义重复模式排列行,sql,sql-server,Sql,Sql Server,有没有一种方法可以在自定义模式中对行进行排序。例如: 假设我有一个表(Id、type、createdDate),其中type列的值为a、B、C。我希望结果集的重复模式为 B,按类型内的createdDate排序。谢谢 这里有一个例子 表格 1 | A | 2017-1-20 2 | A | 2017-1-19 3 | B | 2017-1-21 4 | B | 2017-1-22 5 | B | 2017-1-23
1 | A | 2017-1-20
2 | A | 2017-1-19
3 | B | 2017-1-21
4 | B | 2017-1-22
5 | B | 2017-1-23
6 | C | 2017-2-20
7 | B | 2017-2-19
8 | B | 2017-2-21
9 | A | 2017-2-22
10 | A | 2017-2-23
11 | B | 2017-2-20
上表可以看作是由CreatedDate排序的三组数据
2 | A | 2017-1-19
1 | A | 2017-1-20
9 | A | 2017-2-22
10 | A | 2017-2-23
3 | B | 2017-1-21
4 | B | 2017-1-22
5 | B | 2017-1-23
7 | B | 2017-2-19
11 | B | 2017-2-20
8 | B | 2017-2-21
6 | C | 2017-2-20
结果集应根据模式和createdDate排序
2 | A | 2017-1-19
1 | A | 2017-1-20
9 | A | 2017-2-22
10 | A | 2017-2-23
3 | B | 2017-1-21
4 | B | 2017-1-22
5 | B | 2017-1-23
7 | B | 2017-2-19
11 | B | 2017-2-20
8 | B | 2017-2-21
6 | C | 2017-2-20
结果
3 | B | 2017-1-21
4 | B | 2017-1-22
6 | C | 2017-1-20
2 | A | 2017-1-19
5 | B | 2017-1-23
7 | B | 2017-2-19
1 | A | 2017-1-20
11 | B | 2017-2-20
8 | B | 2017-2-21
9 | A | 2017-2-22
10 | A | 2017-2-23
我们可以将输入表看作是按日期排序的三组。我们必须将它们合并到B C A模式中(这是一个示例,该模式是灵活的) 详细说明您的示例,并以表格格式提供示例数据和预期输出。向示例中添加更多行。如果交换ID为3和5的行,结果是否可以接受?根据您的描述,可能有多个结果。行在类型中按createDate排序。因此,第3行和第5行无法交换。