SQL查漏补缺(05)

第一部分 基础知识

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实现)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值