sql - 排序表 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
我是这个论坛和编程的新手,如果这个问题被重复,我很抱歉。我已经搜索了我的问题,但我没有找到确切的解决方案
解决方案
尝试
Select * from MyTable ORDER BY Years, Months
当你说时ORDER BY A, B
,order byB
只会A
在相同的情况下进行。请参阅https://www.w3schools.com/sql/sql_orderby.asp中的“按几列排序示例” 。
但是正如@GMB 在另一个答案中所指出的那样,您最好转换为日期并按此排序。否则,对于任何给定的年份,月份将按字母顺序排列,而不是基于实际的日历顺序。
推荐阅读
- ajax - Woocommerce checkout ajax long delay when change of billing address
- vba - 将公式放入单元格,错误地插入值而不是公式?
- r - 秒表作为 R 的闪亮输入
- wordpress - 用于搜索的自定义 WP_Query
- php - 学生项目分配与管理系统
- java - 确定枚举的更高/最大值
- python - 在完全构造派生类之前调用派生方法?
- c# - 怎么可能 DATA 绑定字典
> 到 C#-WPF 中的列表框? - php - 在 Windows 上安装后 Imagemagick 无法正常工作
- shell - IzPack - 执行 shell 脚本文件以启动 mvn 命令