SQL服务器从表中选择最多两个日期

时间:2014-04-09 09:39:34

标签: sql sql-server

我想知道如何从表格中的列中选择两个最近的日期。请参阅下面的简单示例。我知道要获得最大日期我可以使用max函数。我还意识到我可以使用where条件执行另一个max语句,该条件声明它必须小于我的第一个max查询返回的第一个日期。我想知道是否有一种方法可以在一个查询中执行此操作?

Name     DateAdded
ABC      2014-04-20
ABC      2014-04-20
ABC      2014-03-01
ABC      2014-03-01
ABC      2014-02-25
ABC      2014-05-22
ABC      2014-04-01

应该退回的两个日期是最近的两个日期,即2014-05-22& 2014年4月20日

修改

对不起我应该提到是的我想要两个不同的日期。该表很大,日期没有排序。我认为排序表可能会很慢。

3 个答案:

答案 0 :(得分:1)

SELECT distinct top 2 Dateadded 
FROM table 
ORDER BY Dateadded desc

答案 1 :(得分:0)

select top(2) DateAdded
from table
order by DateAdded DESC

答案 2 :(得分:0)

试试这个:

select distinct top(2) format(Dateadded ,'yyyy-MM-dd') as Dateadded 
from TableName
order by Dateadded DESC