在TSQL中使用SELECT DISTINCT上的ORDER BY

ctr*_*yan 6 sql t-sql sql-server

我正在尝试检索按日期排序的日期字符串列表,如下所示...

SELECT DISTINCT CONVERT(Varchar(10), GeneratedDate, 101) AS GeneratedDate
FROM dbo.ProviderProcessGeneratedDate
ORDER BY GeneratedDate
Run Code Online (Sandbox Code Playgroud)

这是由我将日期转换为的varchar命令.

例如...
02/01/2008
2008年2月15日
2007年2月21日
2007年2月23日
2008年2月29日

我使用内联查询解决了这个问题...

SELECT CONVERT(Varchar(10), a.GeneratedDate, 101) AS GeneratedDate
FROM (SELECT DISTINCT Convert(DATETIME,CONVERT(Varchar(10), GeneratedDate, 101)) AS GeneratedDate
      FROM dbo.ProviderProcessGeneratedDate) a
ORDER BY a.GeneratedDate DESC
Run Code Online (Sandbox Code Playgroud)

为了得到我真正想要的东西...
01/11/2008
01/04/2008
12/28/2007
12/21/2007

有没有更简单的方法?似乎很多工作要做这么简单的事情.

Cha*_*ana 1

  SELECT DISTINCT Convert(DATETIME,CONVERT(Varchar(10), GeneratedDate, 101)) 
                     AS GeneratedDate,
        A.GeneratedDate OrderByDate       
  FROM dbo.ProviderProcessGeneratedDate A
  Order By A.GeneratedDate Desc
Run Code Online (Sandbox Code Playgroud)