SQL> select * from student;NAME AGE
---------- ----------
a 18
b 18
c 18
d 19
e 19
f 19
g 18
h 18
i 18已选择9行。SQL> break on age;
SQL> select * from student;NAME AGE
---------- ----------
a 18
b
c
d 19
e
f
g 18
h
i已选择9行。SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
g 18
已选择2行。
如何实现?--但我现在想要的结果是:SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
b
c
g
h
i
---------- ----------
a 18
b 18
c 18
d 19
e 19
f 19
g 18
h 18
i 18已选择9行。SQL> break on age;
SQL> select * from student;NAME AGE
---------- ----------
a 18
b
c
d 19
e
f
g 18
h
i已选择9行。SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
g 18
已选择2行。
如何实现?--但我现在想要的结果是:SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
b
c
g
h
i
解决方案 »
- 执行存储过程出现ORA-00900:invalid SQL statement
- oracle如何让表名不区分大小写
- Oracle
- 有没办法建立某一表的映射表?
- oracle contains问题,着急,一小时结帖
- 关于锁的问题
- 在oracle 中如何 把 long 型的数据 通过函数转化为 varchar2 或者 char 型啊
- 利用oracle自带的database config assiant新建数据库很大,有900M,我想建立一个空的数据库如何处理阿
- 8.17i的版本怎么样才能安装到win2 server上去啊
- Oracle菜鸟,请教各位高手,如何在C#里使用Oracle?
- oracle 数据文件问题!
- 求助一个关于连接超时的问题
现在是
SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
b
c
g
h
i
但我想要SQL> select * from student where age = 18;NAME AGE
---------- ----------
a 18
g 18如何实现?
---------- ----------
a 18
b 18
c 18
d 19
e 19
f 19
g 18
h 18
i 18
其实我就是想将就是想输出 连续出现的某个年龄的第一条记录而已。
假设现在我想出输入年龄是18的。所以:
前面有三个18岁的,所以输入a 18
接着是三个19岁的,不输出。
然后又是三个18岁的,所以输出 g 18
---------- ----------
a 18
b 18
c 19
d 19
e 18
f 186 rows selected.
SQL> select name,age from
2 (
3 select name,age,
4 decode(lag(age) over(order by name),null,age,lag(age) over(order by name))
pre,
5 row_number() over(order by name) rn
6 from t1
7 )
8 where age<>pre
9 or rn=1;NAME AGE
---------- ----------
a 18
c 19
e 18
--屏蔽掉一个列中显示的相同的值 SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL < 2500
ORDER BY DEPTNO;
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
from(
select t.*,lag(age)over(order by 1)l
from student t)
where (l<>age or l is null)and age=18其实这个需求比较不合常理。如果需要按name排序的话,将order by 1的1改成name
用clear breaks