选择具有MAX功能的更多列

时间:2013-06-19 15:52:42

标签: sql

需要在数据库中找到最大值,但是我需要在列中读取其他值。

这可以使用一个SQL命令完成,还是必须使用这两个命令?

SELECT MAX(id) FROM Table; 
SELECT * FROM Table WHERE id = $value;

其中$ value从第一个命令变化

2 个答案:

答案 0 :(得分:5)

select * from your_table
where id = (select max(id) from your_table)

select t1.* from your_table t1
inner join 
(
   select max(id) as mid 
   from your_table 
) 
t2 on t1.id = t2.mid

答案 1 :(得分:1)

可能最简单的方法是:

select *
from t
order by id
limit 1

或者使用top 1where rownum = 1或者数据库的正确逻辑。

注意:这只返回一行。如果您有这样的行重复,那么与最大值的比较将为您提供所有这些行。

另外,如果您使用的是支持窗口函数的数据库:

select *
from (select t.*, row_number() over (order by id desc) as seqnum
      from t
     ) t
where seqnum = 1;