第一部分 基础知识
1.SQL中In的用法
select in关键字查询匹配单个字段
例如::
SELECT * FROM Websites
WHERE name IN ('Google','菜鸟教程');
2.count的使用
count(expr) 计数expr为真时的次数
count(*) 计算所有数据条目数
常见的条件count为
count(if(需要判断的条件,1,NULL))
3.SQL中异常处理
<异常名> EXCEPTION; --异常声明
RAISE <异常名>; --抛出异常
EXCEPTION --异常处理
WHEN <异常名> THEN
<异常处理>
[RAISE;] --重新抛出异常
4.With ... as...
with as语法
针对一个别名
with tmp as (select * from tb_name)
针对多个别名
with
tmp as (select * from tb_name),
tmp2 as (select * from tb_name2),
tmp3 as (select * from tb_name3),
–相当于建了个temp临时表
with temp as (select * from proj_appl)
select * from temp;
–相当于建了temp1、temp2临时表
with
temp1 as (select * from proj_appl),
temp2 as (select * from project)
select * from temp1, temp2 where temp1.proj_Id = temp2.proj_Id;
其实就是把一大堆重复用到的sql语句放在with as里面,取一个别名,后面的查询就可以用它,
这样对于大批量的sql语句起到一个优化的作用,而且清楚明了。
WITH语句的优点:
(1) SQL可读性增强。比如对于特定with子查询取个有意义的名字等。
(2) with子查询只执行一次,将结果存储在用户临时表空间中,可以引用多次,增强性能。
第二部分 实战演练
13.部门中至少有5名下属的经理
14.行程和用户
16.修复表中的名字
17.客户买下的产品情况
请得到每个customer_id拥有的product情况(使用listagg实现)