首页 > 解决方案 > 排序表 2 列月和年

问题描述

我有一个表名 MyTable 并有 3 列 ID、月、年。

ID ¦ Months  ¦Years       
----------------------        
1  ¦ December¦ 2019        
2  ¦ January ¦ 2019        
3  ¦ February¦ 2020        
4  ¦ January ¦ 2020        

我用查询

"Select * from MyTable ORDER BY Years"

输出:

ID ¦ Months  ¦Years
----------------------
1  ¦ December¦ 2019
2  ¦ January ¦ 2019
3  ¦ February¦ 2020
4  ¦ January ¦ 2020

然后我尝试了查询

"Select * from MyTable ORDER BY  Months, Years"

输出:

ID ¦ Months  ¦Years        
----------------------        
1  ¦ December¦ 2019
3  ¦ February¦ 2020
2  ¦ January ¦ 2019
4  ¦ January ¦ 2020

但我想要像这样的输出

ID ¦ Months  ¦Years
----------------------
2  ¦ January ¦ 2019
1  ¦ December¦ 2019
4  ¦ January ¦ 2020
3  ¦ Febuary ¦ 2020

我是这个论坛和编程的新手,如果这个问题被重复,我很抱歉。我已经搜索了我的问题,但我没有找到确切的解决方案

标签: sqldatems-accesssql-order-byms-access-2007

解决方案


尝试

Select * from MyTable ORDER BY Years, Months

当你说时ORDER BY A, B,order byB只会A在相同的情况下进行。请参阅https://www.w3schools.com/sql/sql_orderby.asp中的“按几列排序示例” 。

但是正如@GMB 在另一个答案中所指出的那样,您最好转换为日期并按此排序。否则,对于任何给定的年份,月份将按字母顺序排列,而不是基于实际的日历顺序。


推荐阅读