一、子查询
注:下面使用 Microsoft SQL Server 2019
1.SQL Server子查询
(1)、子查询是嵌套在另一个语句(如:[SELECT],[INSERT],[UPDATE]或[DELETE])中的查询。
(2)、例:在 SELECT 语句的[WHERE]子句中使用子查询来查找位于纽约( New York )的客户的销售订单,可以进行分步分析。
①、首先查询出来自纽约( New York )的客户订单,得到对应的客户
②、然后查询客户的销售订单,要从订单表里查找,把查询到来自纽约( New York )的所有客户放进子查询中。
③、把客户id放在子查询中查询到来自纽约( New York )的客户对应的客户id。
④、结合前面步骤进行子查询语句可以查询出来自纽约( New York )的客户对应的客户id对应的订单号及订单信息。
(3)、如果在子查询过程中使用:=、!=、<、<=、>、>=,等等运算符的时候系统会提示你,子查询返回的值不止一个,或子查询用做表达式时是不允许的,原因为返回的数据可能不止一条,如果返回的数据只有一条则不会报错,注只针对多条数据而言。
2.嵌套子查询
(1)、 子查询可以嵌套在另一个子查询中。 SQL Server最多支持 32 个嵌套级别。
(2)、例1:使用子查询来查找位于纽约( New York )的客户的销售订单并且订单id号小于20的订单信息:
①、通过图中2级子查询中知道,首先查询客户表中客户id小于20的数据,
②、通过图中1级子查询中查询出来自纽约( New York )的客户订单,得到对应的客户id。
③、两条子查询结合起来成为嵌套子查询,可以查找位于纽约( New York )的客户的销售订单并且订单id号小于20的订单信息。
(3)、题目:查找价格高于 ‘上海永久’ 和 ‘凤凰’ 品牌的所有产品的平均定价的产品:
①、分步进行分析,首先,查询以获取品牌名称为 ‘上海永久’ 和 ‘凤凰’ 的品牌标识号列表,即查询到品牌名字为“上海永久”、“凤凰”品牌的品牌id。
②、SQL Server计算属于这些品牌的所有产品的平均价格:
③、SQL Server查找价格高于 ‘上海永久’
Microsoft SQL Server 数据库使用(六)
最新推荐文章于 2023-11-09 16:48:12 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)