SQL SERVER:多表查询之—行子查询、表子查询(25)

SQL SERVER:多表查询之—行子查询、表子查询(25)

编码文章call10242025-02-01 3:50:3513A+A-

一、行子查询:

1、子查询返回的结果为一行,可以是多列;

2、常用的操作符:=、<>、IN、NOT IN

3、例:

1)查询与王小小的年龄与性别相同的员工记录

USE MyServer
GO
SELECT E_Name,E_Age,E_Gender FROM Employee WHERE 
CHECKSUM(E_Age,E_Gender) =
(
	SELECT CHECKSUM (E_Age,E_Gender) FROM Employee WHERE E_Name='王小小'
)
GO

注:在SQL SERVER 不支持多列查询,可用CHECKSUM函数来实现

三、表子查询:

1、子查询返回结果是多行多列,这种子查询称为表子查询,通常做为虚拟表来进行连接查询

2、常用操作符:IN、NOT IN

3、例:

1)查询销售1部、销售2部的人员名称,包括部门名称、姓名、年龄、电话

USE MyServer
GO
SELECT E_Name,E_Age,E_Phone,D_Name FROM Employee E JOIN
(
	SELECT D_Id,D_Name FROM Department WHERE D_Name IN ('销售1部','销售2部')
) D ON E.D_Id=D.D_ID
GO

2)查询各产品类别的库存量大于30的产品记录,包含产品类别名称、库存数量

USE MyServer
GO
SELECT P_SortName,库存量 FROM ProductSort P JOIN
(
  SELECT P_ID,SUM(PL_Amount) 库存量 FROM ProductList
  GROUP BY P_Id HAVING SUM(PL_Amount)>30
) P2 ON P.P_Id=P2.P_Id
GO
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4