SQL Server/T-SQL/Data Set/EXCEPT

Материал из SQL эксперт
Перейти к: навигация, поиск

Dataset EXCEPT

33>
34>
35> -- 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)
40>
41> 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")
48>
49> select * from employee
50> 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)
1>
2>
3> CREATE TABLE department(dept_no   CHAR(4) NOT NULL,
4>                         dept_name CHAR(25) NOT NULL,
5>                         location  CHAR(30) NULL)
6>
7> insert into department values ("d1", "developer",   "Dallas")
8> insert into department values ("d2", "tester",      "Seattle")
9> insert into department values ("d3", "marketing",  "Dallas")
10>
11> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2> SELECT DISTINCT emp_fname FROM employee
3> EXCEPT
4> SELECT location FROM department
5> GO
emp_fname
------------------------------
Ann
Elke
Elsa
James
John
Matthew
Sybill
(7 rows affected)
1>
2> drop table employee
3> drop table department
4> GO
1>