当前位置: 代码迷 >> Sql Server >> 求A表第二大值对应另一个表的记要的SQL
  详细解决方案

求A表第二大值对应另一个表的记要的SQL

热度:37   发布时间:2016-04-24 10:06:14.0
求A表第二大值对应另一个表的记录的SQL
A表:
ID  老师姓名    升学率
1    张老师        80%
2    王老师        85%
3    李老师        83%
4    赵老师        81%

B表
ID    老师姓名    学生姓名  
1    张老师         吴xx       
2    王老师         方xx
3    李老师         卫xx
4    赵老师         周xx
5    张老师         吴xx       
6    王老师         方xx
7    李老师         杨xx
8    李老师         沈xx
9    赵老师         钱xx
10  李老师         韩xx
11  赵老师        周xx


用一条SQL 找到A表中通过率第二的李老师在对应B表中所有学生名

结果是这样:
老师姓名    学生姓名  
李老师        卫xx
李老师        杨xx
李老师        沈xx
李老师        韩xx




------解决方案--------------------

--方法1
SELECT
  B.老师姓名,B.学生姓名 
FROM 
 (SELECT 老师姓名 FROM (SELECT TOP 1 老师姓名 FROM (SELECT TOP 2 老师姓名 FROM A ORDER BY 升学率 DESC) AS T) AS A
INNER JOIN
  B
ON
  A.老师姓名=B.老师姓名

--方法2
select * from b where 老师姓名=(select 老师姓名 from (select px=row_number()over(order by 升学率),* from a) as t where px=2)
 
  相关解决方案