CASE WHEN和decode的使用
程序员文章站
2022-05-07 16:29:06
...
1.在查询中尽量不要使用“*”
2.多表查询时多使用别名(AS)
3.条件查询多使用WHERE,尽量避免使用HAVING
4.计算时不用索引列(select * from emp where sal+500>1000×select * from emp where sal>500√)
5.指定查询范围时多使用IN(select * from emp where id=1001 or id =1002× select * from emp where id in (1001,1002)√)
6.使用TRUNCATE清空表中记录
7.及时提交事务
8.多使用EXISTS和NOT EXISITS语句判断条件(select * from emp where deptid in (select id from dept where deptname='信息部')× select * from emp where deptid exists (select id from dept where deptname='信息部')√)
9.使用大写字母代替小写字母
10.尽量不使用不等号(使用不等号不会使用到索引)
11.尽量不想hi用NULL关键字判断空(IS NULL和IS NOT NULL不会使用索引查询)
12.使用ROWID去除表中的重复值
2.多表查询时多使用别名(AS)
3.条件查询多使用WHERE,尽量避免使用HAVING
4.计算时不用索引列(select * from emp where sal+500>1000×select * from emp where sal>500√)
5.指定查询范围时多使用IN(select * from emp where id=1001 or id =1002× select * from emp where id in (1001,1002)√)
6.使用TRUNCATE清空表中记录
7.及时提交事务
8.多使用EXISTS和NOT EXISITS语句判断条件(select * from emp where deptid in (select id from dept where deptname='信息部')× select * from emp where deptid exists (select id from dept where deptname='信息部')√)
9.使用大写字母代替小写字母
10.尽量不使用不等号(使用不等号不会使用到索引)
11.尽量不想hi用NULL关键字判断空(IS NULL和IS NOT NULL不会使用索引查询)
12.使用ROWID去除表中的重复值
select name, decode(sex, 0, '女', '男') as 性别, (case sex when 0 then '女' when 1 then '男' end) as sex ,(case when age>=30 then '超过30岁的老师' when age < 30 then '低于30岁的老师' end )as 年龄情况 from teacher
上一篇: 喜欢一个女神,可是她有对象啊,怎么办呢?