子查询返回超过一行怎么办_第四关 复杂查询

博客介绍了SQL中视图的创建、调用及注意事项,详细讲解了子查询,包括其运行顺序、与in、any、all的配合使用,还提及标量子查询和关联子查询。同时给出子查询报错信息的解决方法,最后总结关联条件的使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 创建视图

a9002f1ec70b18a5f97ef1a8b20da98f.png

视图创建如下:

as后面放的是SQL查询语句

dea950035e345e4fe5634cbc0c0de1cf.png

视图调用方法:创建视图后,右键视图,刷新

直接在from后面写上视图的名称就可以直接调用了

b6c1051304e325f5a9ea9ca135867086.png

视图的注意事项:

1、不要在视图中国再次创建视图

2、视图不要插入数据

2 子查询

子查询是在from子句中直接写定义视图的SQL查询语句,且运行顺序是:先运行子查询,再运行select

子查询后面需加as 命名,养成习惯

65ad2379d6072824eacbc6df26fe51f8.png

子查询可以配合in,any,all使用

2.1 in的使用

df609c063d2364a867732a9e4eb98a0a.png

e2dd6e3b75a146f85c944af10371ce52.png

2.2 any的使用

any(子查询)和some(子查询)相同

c06d67d9af78467b9cc1e1e9b2421188.png

26c123d898da465d0c72a47889c3a60a.png

只要成绩>any中任意成绩,即可满足条件

2.3 all的使用

必须满足成绩>all中所有的成绩,用法同any一样

子查询注意事项和运行顺序:

cf1c729ffedf7d6c9f9ddd088c23d0ef.png

ecd501343b71c30c3219bd7305eccba2.png

3 标量子查询

where不可以运行汇总函数,所以需要引入标量子查询

40f3035c274cf973ff5c696267acd911.png

标量子查询就是返回的为一个单一值,没有多行多列

需要介于一个区间时,使用between...and...

d8615687bea14c75705c0bf521fa1906.png

bc87963c346ab62e51dcd277b479f758.png

4 关联子查询

2c06f7fc43f2b3a22200965e73433c12.png

b0be559c9914a84ab6dbfcd0f661753e.png

关联子查询使用情况:

在每个组中进行比较时使用,并设置关联条件,如果没有关联条件,则返回的是一个多行或多列的列表,当使用关联条件时,返回的是一行,此时类似于标量子查询

5 报错信息的解决

先运行子查询条件,看是否出错,如果没错在运行整个语句

6 各种函数

e958f3b67f0fbfa874af534345d7241f.png

3a58bf6436fdaf85c1d2d42ba930486c.png

fd1c071fb68be51181e5e12d617c02f4.png

总结

关联条件的使用,是一行行与where的条件进行对应的

09e94992a64ade1118b55be0ebacb102.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值