[英]How to sort the the sql table considering the month an year column
我有一个year列,其中包含东西字符串值,例如2015、2014、2013、2012等。一个month列,显示字符串值,例如January,Febrary,... December。 我需要运行一个选择,同时考虑“年”和“月”列。 谁能提供一些意见? 是任何系统程序都可以轻松做到这一点。
我想要基于年和月降序的输出。
您可以执行以下操作:
order by cast(year as int) desc
,case when month = 'January' then 1
when month = 'February' then 2
....
when month = 'December' then 12
end desc
尝试这个
ORDER BY CAST(month+year AS DATE) DESC
这样尝试
DECLARE @table TABLE
(
year VARCHAR(10),
month VARCHAR(20)
)
INSERT INTO @table
VALUES ('2015',
'January'),
('2015',
'March'),
('2015',
'February'),
('2015',
'April'),
('2015',
'May'),
('2014',
'January'),
('2014',
'February'),
('2014',
'March'),
('2014',
'May'),
('2014',
'April'),
('2016',
'January'),
('2016',
'February'),
('2016',
'March'),
('2016',
'May'),
('2016',
'April')
SELECT *
FROM @table
ORDER BY CONVERT(INT, year) desc,
Datepart(mm, Cast(month + ' 1900' AS DATETIME)) desc
您需要将月份名称转换为数字以使用转换参考表并存储值
jan-1,feb-2,march-3 like wise
然后尝试
SELECT * FROM tblName ORDER BY yearField DESC, monthField DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.