EXCEPT 从左查询中返回右查询没有找到的所有非重复值。

INTERSECT 返回 INTERSECT 操作数左右两边的两个查询都返回的所有非重复值。

以下是将使用 EXCEPT 或 INTERSECT 的两个查询的结果集组合起来的基本规则:

·   所有查询中的列数和列的顺序必须相同。

·   数据类型必须兼容。


Examples:

EXCEPT 和 INTERSECTCREATE TABLE projectPerson
EXCEPT 和 INTERSECT(
EXCEPT 和 INTERSECTpersonId 
VARCHAR(10),
EXCEPT 和 INTERSECTprojectId 
VARCHAR(10),
EXCEPT 和 INTERSECT
PRIMARY KEY (personId, projectId)
EXCEPT 和 INTERSECT)
EXCEPT 和 INTERSECT
go
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('joeb','projBig')
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('joeb','projLittle')
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('fredf','projBig')
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('homerr','projLittle')
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('stevegr','projBig')
EXCEPT 和 INTERSECT
INSERT INTO projectPerson VALUES ('stevegr','projLittle')
EXCEPT 和 INTERSECT
go
EXCEPT 和 INTERSECT

我们要找出负责projBig,但不负责projLittle的那些人员,我们可以用下面的sql语句:

EXCEPT 和 INTERSECTSELECT personId
EXCEPT 和 INTERSECT
FROM projectPerson
EXCEPT 和 INTERSECT
WHERE projectId = 'projLittle'
EXCEPT 和 INTERSECT
EXCEPT
EXCEPT 和 INTERSECT
SELECT personId
EXCEPT 和 INTERSECT
FROM projectPerson
EXCEPT 和 INTERSECT
WHERE projectId = 'projBig'
我们要找出既负责projBig,又负责projLittle的那些人员,我们可以用下面的sql语句:
EXCEPT 和 INTERSECTSELECT personId
EXCEPT 和 INTERSECT
FROM projectPerson
EXCEPT 和 INTERSECT
WHERE projectId = 'projBig'
EXCEPT 和 INTERSECT
INTERSECT
EXCEPT 和 INTERSECT
SELECT personId
EXCEPT 和 INTERSECT
FROM projectPerson
EXCEPT 和 INTERSECT
WHERE projectId = 'projLittle'

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2021-06-21
  • 2022-12-23
猜你喜欢
  • 2018-03-30
  • 2021-07-14
  • 2022-12-23
  • 2021-10-07
  • 2022-02-02
  • 2021-10-05
  • 2021-12-01
相关资源
相似解决方案