文章目录
- 1、在多行子查询中用ANY运算符
-
- 2、在多行子查询中用ALL运算符
-
- 3.行列转换
- 3.1 建表
- 3.2 插数
- 3.3 列传行
- 3.3.1 union all 实现列传行
- 3.3.2 oracle 自带函数
- 3.4 行专列
- 3.4.1 关联
- 3.4.2 decode 行转列
- 3.4.3 case when 行转列
- 4. 递归查询
- 5、distinct
- 6、top
- 7、0和null区别
- 8、order by (以某个字段排序)
- 9、模糊查询
1、在多行子查询中用ANY运算符
1.1 示例
2、在多行子查询中用ALL运算符
2.1 示例
3.行列转换
3.1 建表
drop table score_line;
drop table score_col;
create table score_line
(
sname varchar2(20)
,subject varchar2(20)
,score number(3)
);
create table score_col
(
sname varchar2(20)
,yuwen number
,shuxue number
,yingyu number
);
3.2 插数
insert into score_line (sname, subject, score) values (‘小明’, ‘英语’, 20);
insert into score_line (sname, subject, score) values (‘唐斌’, ‘语文’, 76);
insert into score_line (sname, subject, score) values (‘林艇’, ‘语文’, 90);
insert into score_line (sname, subject, score) values (‘唐斌’, ‘数学’, 94);
insert into score_line (sname, subject, score) values (‘林艇’, ‘数学’, 59);
insert into score_line (sname, subject, score) values (‘唐斌’, ‘英语’, 15);
insert into score_line (sname, subject, score) values (‘林艇’, ‘英语’, 88);
insert into score_col (sname, yuwen, shuxue, yingyu) values (‘唐斌’, 76, 94, 15);
insert into score_col (sname, yuwen, shuxue, yingyu) values (‘小明’, null, 0, 20);
insert into score_col (sname, yuwen, shuxue, yingyu) values (‘林艇’, 90, 59, 88);
commit;
3.3 列传行
3.3.1 union all 实现列传行
3.3.2 oracle 自带函数
score for subject in (yuwen,shuxue,yingyu) 表示括号里三个字段,字段名给到了subject,直给到了score
3.4 行专列
3.4.1 关联
先把所有名字取出来,然后外关联
3.4.2 decode 行转列
3.4.3 case when 行转列
4. 递归查询
5、distinct
select distinct deptno from emp 会过滤掉重复的deptno
select distinct comm,deptno from emp 表示把comm和deptno的组合进行过滤
6、top
select top 2 * from emp top 2 表示前面2行记录
select top 15 percent * from emp 表示前面的15%
select top 4 * 最后执行
from emp 首先执行
where sal between 1500 and 3000 第二执行
order by sal desc (降序排列,不写就升序) 第三执行
7、0和null区别
0和null是不一样的,null表示空直,没有直,0表示一个确定的直
任何类型的数据都允许null
任何数字与null参与数学运算结果永远是null
8、order by (以某个字段排序)
asc 升序默认可不写
desc 降序
select * form emp order by deptno ,sal
先按照deptno升序排序,如果deptno相同再按sal排序
select * form emp order by deptno ,sal desc
先按deptno升序,如果deptno相同再按sal降序
order by a desc,b,c,d 只对a产生影响,不会对后面的b,c,d产生影响
9、模糊查询
‘%A%’ 表示只要含有字母A的就输出
% 表示任意0个或则多个字符
‘A%'表示只要第二个字母是A的就输出
'[^A-J]%’ 表示第二个字符不是A也不是B也不是C或也不是D
[A,F] A 或F
select * from student where name like '%/%%' escape '/' 表示把名字中包含有%的输出,当特殊/开始后面跟的就是普通字符 /可以是任意字符
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)