查看内容

except详细用法澳门太阳集团2007网站

  • 2020-04-30 06:29
  • 数据库知识
  • Views

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

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

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

所有查询中的列数和列的顺序必须相同。数据类型必须兼容。

transact-sql 语法约定

语法{ query_specification | ( query_expression ) } { except | intersect }{ query_specification | ( query_expression ) }

参数query_specification | ( query_expression )查询规范或查询表达式返回与来自另一个查询规范或查询表达式的数据相比较的数据。在 except 或 intersect 运算中,列的定义可以不同,但它们必须在隐式转换后进行比较。如果数据类型不同,则用于执行比较并返回结果的类型是基于数据类型优先级的规则确定的。

如果类型相同,但精度、小数位数或长度不同,则根据用于合并表达式的相同规则来确定结果。有关详细信息,请参阅 精度、小数位数和长度 (transact-sql)。

查询规范或表达式不能返回 xml、text、ntext、image 或非二进制 clr 用户定义类型列,因为这些数据类型不可比较。

except从 except 操作数左边的查询中返回右边的查询未返回的所有非重复值

看实例

333435 -- intersect: find all employee numbers that belong to the result set of the first query as well as of the second query.36 create table employee (emp_no integer not null,37 emp_fname char(20) not null,38 emp_lname char(20) not null,39 dept_no char(4) null)4041 insert into employee values(1, 'matthew', 'smith', 'd3')42 insert into employee values(2, 'ann', 'jones', 'd3')43 insert into employee values(3, 'john', 'barrimore','d1')44 insert into employee values(4, 'james', 'james', 'd2')45 insert into employee values(5, 'elsa', 'bertoni', 'd2')46 insert into employee values(6, 'elke', 'hansel', 'd2')47 insert into employee values(7, 'sybill', 'moser', 'd1')4849 select * from employee50 go

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)emp_no emp_fname emp_lname dept_no----------- -------------------- -------------------- ------- 1 matthew smith d3 2 ann jones d3 3 john barrimore d1 4 james james d2 5 elsa bertoni d2 6 elke hansel d2 7 sybill moser d1

(7 rows affected)123 create table department(dept_no char(4) not null,4 dept_name char(25) not null,5 location char(30) null)67 insert into department values ('d1', 'developer', 'dallas')8 insert into department values ('d2', 'tester', 'seattle')9 insert into department values ('d3', 'marketing', 'dallas')1011 go

(1 rows affected)

(1 rows affected)

(1 rows affected)12 select distinct emp_fname from employee3 except4 select location from department5 goemp_fname------------------------------annelkeelsajamesjohnmatthewsybill

(7 rows affected)12 drop table employee3 drop table department4 go1