有一个只查看日期字段的MAX的SQL的最佳方法是什么

时间:2011-06-09 02:12:54

标签: sql sql-server

我想查询一列是run_date的表。我想只检索run_date是run_date列中最新run_date的结果。是否可以像这样拥有动态查询。类似的东西:

Select * from Order where DateUpdated = Max(DateUpdated)

3 个答案:

答案 0 :(得分:7)

这将使用最新的DateUpdated返回所有结果。

Select *
  from Order
 where DateUpdated = (SELECT Max(DateUpdated)
                        FROM Order )

答案 1 :(得分:2)

如果您需要最新的行:

select top 1 *
from Order
order by DateUpdated desc

如果您需要检索与最近日期对应的所有行,那么您可以使用CTE有效地执行此操作:

with cte
as
(
    select *, rank() over(order by DateUpdated desc) RankNumber
    from [Order]
)
select *
from cte
where RankNumber = 1

假设MS SQL 2005或更高版本。

如果您使用SQL 2000,那么使用zerkms就有答案。

答案 2 :(得分:0)

尝试此查询

Select * from Order where DateUpdated = (select Max(DateUpdated) from Order)