繁体   English   中英

如何考虑一年中的月份列对sql表进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM