首页 新闻 会员 周边 捐助

sql查询(高手进)

0
悬赏园豆:15 [已关闭问题] 关闭于 2012-06-06 12:05

表格

id  value

1   2

3   5

3   6

   .

   .

查处id第二大的那条的数据

彬彬@科比的主页 彬彬@科比 | 初学一级 | 园豆:43
提问于:2012-06-05 18:31
< >
分享
所有回答(1)
0

是用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最大的数据,然后把他排除在外,然后在剩下的数据中再选出最大的数据

微澜 | 园豆:-1 (初学一级) | 2012-06-05 18:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册