按月使用订单

时间:2012-02-10 06:11:43

标签: sql sql-server-2005

我有一个表Table1,其中包含Column1列,如下所示:

列1

Dec-2010
Dec-2011
Feb-2011
Apr-2011
Jul-2011
May-2011
Aug-2011
Oct-2011
Sept-2011
Jan-2011
Mar-2011
Jun-2011
Nov-2011
Jan-2012

我想通过使用SELECT命令提取数据,如下所示。

列1

Dec-2010
Jan-2011
Feb-2011
Mar-2011
Apr-2011
May-2011
Jun-2011
Jul-2011
Aug-2011
Sep-2011
Oct-2011
Nov-2011
Dec-2011
Jan-2012

请通过提供SELECT查询来帮助我检索数据,如上所示。

3 个答案:

答案 0 :(得分:2)

这是另一种解决方案,除了VARCHAR replace字符外,不涉及与-列(或我假设)混淆:

SELECT  Column1
FROM    Table1
ORDER BY
        CONVERT(DATETIME, REPLACE(Column1, '-', ' '))

答案 1 :(得分:1)

Convert您的列到日期时间并按此顺序排序。

select Column1
from YourTable
order by convert(datetime, left(Column1, 3)+' 01, '+right(Column1, 4), 107)

答案 2 :(得分:0)

如果您的列数据类型是DATE,那么只需按列名称命令

SELECT * from TABLE_NAME 
ORDER BY COL1;

默认情况下按升序排列。