简单的SQL编程
set @+XX = 0 ; 自定义变量。
#8、显示每个门派年龄第二大的人
SET @rank=0;
SET @last_deptid=0;
SELECT a.deptid,a.name,a.age
FROM(
SELECT t.*,
IF(@last_deptid=deptid,@rank:=@rank+1,@rank:=1) AS rk,
@last_deptid:=deptid AS last_deptid
FROM t_emp t
ORDER BY deptid,age DESC
)a WHERE a.rk=2;
#8、显示每个门派年龄第二大的人 门派中有人年龄相等时的写法
SET @rank = 0;
SET @last_deptId = 0;
SET @t_age = 0;
SELECT * FROM
(
SELECT e.*,
IF(@last_deptId=deptId, IF(@t_age=age,@rank,@rank:=@rank+1), @rank:=1) rk,
@last_deptId := deptId last_deptId,
@t_age := age last_age
FROM t_emp e
ORDER BY deptId,age DESC
) rt
WHERE rt.rk <= 3;