sql 查询排序 year/month
sql query sorting year/month
嗨,我的 table 结构是这样的
year month name
2015 1 adc
2015 2 adc
2015 4 adc
2015 5 adc
2015 6 adc
2015 7 adc
2015 8 adc
2015 9 adc
2015 10 adc
2015 11 adc
2015 12 adc
2016 1 adc
2016 2 adc
2016 3 adc
我想对我的查询结果进行排序,总是从一年中的第 4 个月开始到下一个 year.for 的第 3 个月结束 year.for 例如,如果我想要 2015 年的数据,它应该像
2015 4 adc
2015 5 adc
2015 6 adc
2015 7 adc
2015 8 adc
2015 9 adc
2015 10 adc
2015 11 adc
2015 12 adc
2016 1 adc
2016 2 adc
2016 3 adc
我可以使用 SQL 查询来执行此操作吗?在这里我还需要在第 12 个月后增加年份
您可以为一个条件组合多个列:
select *
from my_table t
where (year, month) >= (2015, 4)
and (year, month) <= (2015+1, 3)
order by year, month
这个(理论上)应该使用(年,月)索引。
解决了,谢谢
select *
from my_table t
where (year=$year and month>=4)
or(year=$year+1 and month<=3)
order by year, month
嗨,我的 table 结构是这样的
year month name
2015 1 adc
2015 2 adc
2015 4 adc
2015 5 adc
2015 6 adc
2015 7 adc
2015 8 adc
2015 9 adc
2015 10 adc
2015 11 adc
2015 12 adc
2016 1 adc
2016 2 adc
2016 3 adc
我想对我的查询结果进行排序,总是从一年中的第 4 个月开始到下一个 year.for 的第 3 个月结束 year.for 例如,如果我想要 2015 年的数据,它应该像
2015 4 adc
2015 5 adc
2015 6 adc
2015 7 adc
2015 8 adc
2015 9 adc
2015 10 adc
2015 11 adc
2015 12 adc
2016 1 adc
2016 2 adc
2016 3 adc
我可以使用 SQL 查询来执行此操作吗?在这里我还需要在第 12 个月后增加年份
您可以为一个条件组合多个列:
select *
from my_table t
where (year, month) >= (2015, 4)
and (year, month) <= (2015+1, 3)
order by year, month
这个(理论上)应该使用(年,月)索引。
解决了,谢谢
select *
from my_table t
where (year=$year and month>=4)
or(year=$year+1 and month<=3)
order by year, month