2012-06-14 76 views
0

假设我们有一个DATES表,其中包含3列:colYear(年),colMonth(MONTH),colDay(DAY)。在SQL Server中同时获取多列最大值的结果

行插入,如:

colYear colMonth colDay 
    1  2  3 
    2  3  0 
    4  5  5 
    4  8  0  
    1  10  28 

我需要找到基于3列最大日期。因此,在这个例子中,正确的答案是: 4年,8个月和0天是最大的(我们检查年份,最大值是4秒,之后我们检查最大月份是8,所以我们已经找到了我们的结果)。

可能吗?如何实现这与SQL?

回答

5

使用ORDER BY -

SELECT * from DATES 
    ORDER BY colYear DESC, colMonth DESC, colDay DESC 

根据您的数据库,你可以限制的行数为1

所以对于使用Oracle的rownum = 1 而对于MySQL的将是LIMIT 1

+3

在微软SQL,你可以使用TOP 1,也就是SELECT TOP 1 ... – Sparky

+0

就像我想的那样工作,谢谢你提供的很好和简单的解决方案。 – 0x49D1

+0

我很高兴它帮助...还记下了什么Sparky上面提到,如果你需要限制你的计数为1。 – Kshitij

相关问题