为什么订购不适用于第2列。有人可以解释一下。
select a,b from d:
+------+------+
| a | b |
+------+------+
| 1 | 3 |
| 1 | 3 |
| 2 | 1 |
| 2 | 1 |
| 3 | 2 |
| 3 | 2 |
| 3 | 2 |
+------+------+
select a,b from d order by a,b;
+------+------+
| a | b |
+------+------+
| 1 | 3 |
| 1 | 3 |
| 2 | 1 |
| 2 | 1 |
| 3 | 2 |
| 3 | 2 |
| 3 | 2 |
+------+------+
答案 0 :(得分:2)
我认为它的排序正确。在您的订单中,您已要求系统先通过第一列订购,以便订购,然后您已要求它按第二列订购,以便它具有 它必须保持第一列的排序。 2.按第二栏排序
所以它在集团内的排序意味着......
Table Test
A| B
--------
1 1
1 3
1 2
Select * from test order by A, B
Output
A | B
1 1
1 2
1 3
希望这可以解除你的怀疑。
答案 1 :(得分:1)
输出中的每个记录/行必须一致。当您使用order by时,您将打印基于特定列值排序的记录/行。您不能通过破坏行的一致性来对单个列进行排序。否则会造成严重破坏,想象'select bank_account_id, balance from bank_record order by bank_account_id, balance;'
之类的东西。如果对bank_account_id和balance进行单独排序,您认为会发生什么?