1.创建测试表并插入数据
-
SQL> create table t(x int);
-
-
表已创建。
-
-
SQL> insert into t values(1);
-
-
已创建 1 行。
-
-
SQL> insert into t values(3);
-
-
已创建 1 行。
-
-
SQL> insert into t values(5);
-
-
已创建 1 行。
-
-
SQL> insert into t values(7);
-
-
已创建 1 行。
-
-
SQL> insert into t values(9);
-
-
已创建 1 行。
-
-
SQL> commit;
2 求第二大的数
SQL> select *from t;
X
----------
1
3
5
7
9
1)第一种方法
-
select x from (select x,rownum r from (select x from t order by x desc) where rownum<=2)
-
where r=2
2)第二种方法
-
SQL> select *from t where (select count(*) from t t2 where t2.x>t.x)=1;
-
-
X
-
----------
-
7
关联子查询
3)第三种方法
-
SQL> select max(x) from t where x<(select max(x) from t);
-
-
MAX(X)
-
----------
-
7
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26937943/viewspace-1298939/
,如需转载,请注明出处,否则将追究法律责任。