是用SQLServer么?如果是的话,可以这么做
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS rownum,id,value FROM 表名) AS a WHERE a.rownum=2
这是限制结果集的方法,SQLSERVER2005+可用,具体意思是:SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS rownum,id,value FROM 表名这是选出行号(行号根据id的大小),然后再选出行号为2的数据,就能选出第二大的了
另外一种方式
SELECT top 1 * FROM 表名 WHERE id NOT IN (SELECT top 1 id FROM 表名 ORDER BY id DESC)
这是先选出ID最大的数据,然后把他排除在外,然后在剩下的数据中再选出最大的数据