其他列的SQL ORDER BY行为?

T.T*_*.T. 1 sql database position sql-order-by

列类型字符.

COLUMN 1       COLUMN 2
   1x              A
   1x              B
   2x              A
   2x              B
   3x              A
   3x              B
Run Code Online (Sandbox Code Playgroud)

ORDER BY COLUMN2结果:

COLUMN 1       COLUMN 2
   1x              A
   2x              A
   3x              A
   1x              B
   2x              B
   3x              B
Run Code Online (Sandbox Code Playgroud)

对于这种形式的数据,看起来第一列也是排序的,实际上是我正在寻找的结果; (按排序的第二列分组,在第一列中排序,由第一列排序)

首先,这种行为是否得到保证?

接下来,如果是这样,SQL规范这个行为是什么?

最后,这是实现预期结果的正确方法吗?

谢谢.

Tod*_*odd 6

不,这不能保证.为了保证它,你可以这样做:

select COL1, COL2 from YOURTABLE order by col2, col1
Run Code Online (Sandbox Code Playgroud)

这告诉您的数据库首先通过COL2对它进行排序,然后如果它们相同,则通过在COL1上排序进一步订购它(打破平局,可以这么说).你可以根据需要拥有尽可能多的这些.

  • @TommYy:是的.尝试不同的组合,如`ORDER BY col2,col1 DESC`或`ORDER BY col2 DESC,col1`,看看它是如何工作的. (2认同)