Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按自定义重复模式排列行_Sql_Sql Server - Fatal编程技术网

Sql 按自定义重复模式排列行

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

有没有一种方法可以在自定义模式中对行进行排序。例如: 假设我有一个表(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
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行无法交换。