- create table testorder(
- id number,
- name varchar2(100),
- age number(3),
- chengji number(3)
- );
- insert into testorder values(1,'艾艾',23,96);
- insert into testorder values(2,'王二',22,88);
- insert into testorder values(3,'李三',32,66);
- insert into testorder values(4,'艾就',28,98);
- insert into testorder values(5,'高六',18,99);
- insert into testorder values(6,'张五六',20,101);
- insert into testorder values(7,'时刻',33,72);
- insert into testorder values(8,'兆星',21,86);
- insert into testorder values(9,'古天',26,36);
- insert into testorder values(10,'刘菁',24,82);
- insert into testorder values(11,'欧阳',25,75);
- insert into testorder values(12,'宝贝',36,63);
- insert into testorder values(13,'朝阳',16,90);
- insert into testorder values(14,'底慧',12,81);
- insert into testorder values(15,'一可',19,94);
- 中文字段的排序是按照中文首字的拼音首字母来排序的
- select * from testorder order by name;
- ID NAME AGE CHENGJI
- ---------- --------------- ---------- ----------
- 1 艾艾 23 96
- 4 艾就 28 98
- 12 宝贝 36 63
- 13 朝阳 16 90
- 14 底慧 12 81
- 5 高六 18 99
- 9 古天 26 36
- 3 李三 32 66
- 10 刘菁 24 82
- 11 欧阳 25 75
- 7 时刻 33 72
- 2 王二 22 88
- 15 一可 19 94
- 6 张五六 20 101
- 8 兆星 21 86
- order排序后ROWNUM不是按照顺序排列的
- select rownum as num, id, name, age, chengji
- from testorder
- where age > 16
- and chengji > 60
- order by chengji;
- NUM ID NA AGE CHENGJI
- ---------- ---------- -------------------- ---------- ----------
- 11 12 宝贝 36 63
- 3 3 李三 32 66
- 7 7 时刻 33 72
- 10 11 欧阳 25 75
- 9 10 刘菁 24 82
- 8 8 兆星 21 86
- 2 2 王二 22 88
- 12 15 一可 19 94
- 1 1 艾艾 23 96
- 4 4 艾就 28 98
- 5 5 高六 18 99
- 6 6 张五六 20 101
- 再查一遍rownum就形成了查询结果的顺序编号 如下:
- select rownum, num, id, name, age, chengji
- from (select rownum as num, id, name, age, chengji
- from testorder
- where age > 16
- and chengji > 60
- order by chengji);
- ROWNUM NUM ID NAME AGE CHENGJI
- ---------- ---------- ---------- ------------------ ------ ----------
- 1 11 12 宝贝 36 63
- 2 3 3 李三 32 66
- 3 7 7 时刻 33 72
- 4 10 11 欧阳 25 75
- 5 9 10 刘菁 24 82
- 6 8 8 兆星 21 86
- 7 2 2 王二 22 88
- 8 12 15 一可 19 94
- 9 1 1 艾艾 23 96
- 10 4 4 艾就 28 98
- 11 5 5 高六 18 99
- 12 6 6 张五六 20 101
- ======================================================================
- select * from emp;
- EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
- ---------- ---------- --------- ---------- ---------- ---------- ---------- ----------
- 7369 SMITH CLERK 7902 17-12月-80 800 20
- 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
- 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
- 7566 JONES MANAGER 7839 02-4月 -81 2975 20
- 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
- 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
- 7782 CLARK MANAGER 7839 09-6月 -81 2450 10
- 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
- 7839 KING PRESIDENT 17-11月-81 5000 10
- 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
- 7876 ADAMS CLERK 7788 23-5月 -87 1100 20
- 7900 JAMES CLERK 7698 03-12月-81 950 30
- 7902 FORD ANALYST 7566 03-12月-81 3000 20
- 7934 MILLER CLERK 7782 23-1月 -82 1300 10
- prior关键字的使用,从JONES开始,下一个结果是:他的mgr的值是前一个结果的empno
- select * from emp start with ename='JONES' connect by prior empno=mgr;
- EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
- ---------- ---------- --------- ---------- ---------- ---------- ---------- ----------
- 7566 JONES MANAGER 7839 02-4月 -81 2975 20
- 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
- 7876 ADAMS CLERK 7788 23-5月 -87 1100 20
- 7902 FORD ANALYST 7566 03-12月-81 3000 20
- 7369 SMITH CLERK 7902 17-12月-80 800 20
几点SQL体会
最新推荐文章于 2024-08-15 15:18:22 发布