SQL Server/T-SQL Tutorial/Set Operations/Union — различия между версиями

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

Версия 13:46, 26 мая 2010

A union that combines information from the Billings table

4>
5> create table Billings (
6>     BankerID           INTEGER,
7>     BillingNumber      INTEGER,
8>     BillingDate        datetime,
9>     BillingTotal       INTEGER,
10>     TermsID            INTEGER,
11>     BillingDueDate     datetime ,
12>     PaymentTotal       INTEGER,
13>     CreditTotal        INTEGER
14>
15> );
16> GO
1>
2> INSERT INTO Billings VALUES (1, 1, "2005-01-22", 165, 1,"2005-04-22",123,321);
3> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (2, 2, "2001-02-21", 165, 1,"2002-02-22",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (3, 3, "2003-05-02", 165, 1,"2005-04-12",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (4, 4, "1999-03-12", 165, 1,"2005-04-18",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (5, 5, "2000-04-23", 165, 1,"2005-04-17",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (6, 6, "2001-06-14", 165, 1,"2005-04-18",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (7, 7, "2002-07-15", 165, 1,"2005-04-19",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (8, 8, "2003-08-16", 165, 1,"2005-04-20",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (9, 9, "2004-09-17", 165, 1,"2005-04-21",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (0, 0, "2005-10-18", 165, 1,"2005-04-22",123,321);
2> GO
(1 rows affected)
1>
2>
3> create table Bankers(
4>    BankerID             Integer,
5>    BankerName           VARCHAR(20),
6>    BankerContactLName   VARCHAR(20),
7>    BankerContactFName   VARCHAR(20),
8>    BankerCity           VARCHAR(20),
9>    BankerState          VARCHAR(20),
10>    BankerZipCode        VARCHAR(20),
11>    BankerPhone          VARCHAR(20)
12> )
13> GO
1>
2> insert into Bankers values (1, "ABC Inc.","Joe","Smith","Vancouver","BC","11111","111-111-1111");
3> GO
(1 rows affected)
1> insert into Bankers values (2, "DEF Inc.","Red","Rice", "New York", "DE","22222","222-222-2222");
2> GO
(1 rows affected)
1> insert into Bankers values (3, "HJI Inc.","Kit","Cat",  "Paris",    "CA","33333","333-333-3333");
2> GO
(1 rows affected)
1> insert into Bankers values (4, "QWE Inc.","Git","Black","Regina",   "ER","44444","444-444-4444");
2> GO
(1 rows affected)
1> insert into Bankers values (5, "RTY Inc.","Wil","Lee",  "Toronto",  "YU","55555","555-555-5555");
2> GO
(1 rows affected)
1> insert into Bankers values (6, "YUI Inc.","Ted","Larry","Calgary",  "TY","66666","666-666-6666");
2> GO
(1 rows affected)
1> insert into Bankers values (7, "OIP Inc.","Yam","Act",  "San Franc","FG","77777","777-777-7777");
2> GO
(1 rows affected)
1> insert into Bankers values (8, "SAD Inc.","Hit","Eat",  "Orland",   "PO","88888","888-888-8888");
2> GO
(1 rows affected)
1> insert into Bankers values (9, "DFG Inc.","Sad","Lee",  "Wisler",   "PL","99999","999-999-9999");
2> GO
(1 rows affected)
1> insert into Bankers values (0, "GHJ Inc.","Bit","Lee",  "Ticker",   "MN","00000","000-000-0000");
2> GO
(1 rows affected)
1>
2>
3>
4>
5> SELECT "Active" AS Source, BillingNumber, BillingDate, BillingTotal
6>     FROM Billings
7>     WHERE BillingTotal - PaymentTotal - CreditTotal > 0
8> UNION
9>     SELECT "Paid" AS Source, BillingNumber, BillingDate, BillingTotal
10>     FROM Billings
11>     WHERE BillingTotal - PaymentTotal - CreditTotal <= 0
12> ORDER BY BillingTotal DESC
13> GO
Source BillingNumber BillingDate             BillingTotal
------ ------------- ----------------------- ------------
Paid               0 2005-10-18 00:00:00.000          165
Paid               1 2005-01-22 00:00:00.000          165
Paid               2 2001-02-21 00:00:00.000          165
Paid               3 2003-05-02 00:00:00.000          165
Paid               4 1999-03-12 00:00:00.000          165
Paid               5 2000-04-23 00:00:00.000          165
Paid               6 2001-06-14 00:00:00.000          165
Paid               7 2002-07-15 00:00:00.000          165
Paid               8 2003-08-16 00:00:00.000          165
Paid               9 2004-09-17 00:00:00.000          165
(10 rows affected)
1>
2> drop table Billings;
3> drop table Bankers;
4> GO


A union that combines payment data from the same joined tables

4>
5> create table Billings (
6>     BankerID           INTEGER,
7>     BillingNumber      INTEGER,
8>     BillingDate        datetime,
9>     BillingTotal       INTEGER,
10>     TermsID            INTEGER,
11>     BillingDueDate     datetime ,
12>     PaymentTotal       INTEGER,
13>     CreditTotal        INTEGER
14>
15> );
16> GO
1>
2> INSERT INTO Billings VALUES (1, 1, "2005-01-22", 165, 1,"2005-04-22",123,321);
3> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (2, 2, "2001-02-21", 165, 1,"2002-02-22",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (3, 3, "2003-05-02", 165, 1,"2005-04-12",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (4, 4, "1999-03-12", 165, 1,"2005-04-18",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (5, 5, "2000-04-23", 165, 1,"2005-04-17",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (6, 6, "2001-06-14", 165, 1,"2005-04-18",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (7, 7, "2002-07-15", 165, 1,"2005-04-19",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (8, 8, "2003-08-16", 165, 1,"2005-04-20",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (9, 9, "2004-09-17", 165, 1,"2005-04-21",123,321);
2> GO
(1 rows affected)
1> INSERT INTO Billings VALUES (0, 0, "2005-10-18", 165, 1,"2005-04-22",123,321);
2> GO
(1 rows affected)
1>
2>
3>
4> create table Bankers(
5>    BankerID             Integer,
6>    BankerName           VARCHAR(20),
7>    BankerContactLName   VARCHAR(20),
8>    BankerContactFName   VARCHAR(20),
9>    BankerCity           VARCHAR(20),
10>    BankerState          VARCHAR(20),
11>    BankerZipCode        VARCHAR(20),
12>    BankerPhone          VARCHAR(20)
13> )
14> GO
1>
2> insert into Bankers values (1, "ABC Inc.","Joe","Smith","Vancouver","BC","11111","111-111-1111");
3> GO
(1 rows affected)
1> insert into Bankers values (2, "DEF Inc.","Red","Rice", "New York", "DE","22222","222-222-2222");
2> GO
(1 rows affected)
1> insert into Bankers values (3, "HJI Inc.","Kit","Cat",  "Paris",    "CA","33333","333-333-3333");
2> GO
(1 rows affected)
1> insert into Bankers values (4, "QWE Inc.","Git","Black","Regina",   "ER","44444","444-444-4444");
2> GO
(1 rows affected)
1> insert into Bankers values (5, "RTY Inc.","Wil","Lee",  "Toronto",  "YU","55555","555-555-5555");
2> GO
(1 rows affected)
1> insert into Bankers values (6, "YUI Inc.","Ted","Larry","Calgary",  "TY","66666","666-666-6666");
2> GO
(1 rows affected)
1> insert into Bankers values (7, "OIP Inc.","Yam","Act",  "San Franc","FG","77777","777-777-7777");
2> GO
(1 rows affected)
1> insert into Bankers values (8, "SAD Inc.","Hit","Eat",  "Orland",   "PO","88888","888-888-8888");
2> GO
(1 rows affected)
1> insert into Bankers values (9, "DFG Inc.","Sad","Lee",  "Wisler",   "PL","99999","999-999-9999");
2> GO
(1 rows affected)
1> insert into Bankers values (0, "GHJ Inc.","Bit","Lee",  "Ticker",   "MN","00000","000-000-0000");
2> GO
(1 rows affected)
1>
2>
3>     SELECT BillingNumber, BankerName, "33% Payment" AS PaymentType,
4>         BillingTotal AS Total, (BillingTotal * 0.333) AS Payment
5>     FROM Billings JOIN Bankers
6>         ON Billings.BankerID = Bankers.BankerID
7>     WHERE BillingTotal > 10000
8> UNION
9>     SELECT BillingNumber, BankerName, "50% Payment" AS PaymentType,
10>         BillingTotal AS Total, (BillingTotal * 0.5) AS Payment
11>     FROM Billings JOIN Bankers
12>         ON Billings.BankerID = Bankers.BankerID
13>     WHERE BillingTotal BETWEEN 500 AND 10000
14> UNION
15>     SELECT BillingNumber, BankerName, "Full amount" AS PaymentType,
16>         BillingTotal AS Total, BillingTotal AS Payment
17>     FROM Billings JOIN Bankers
18>         ON Billings.BankerID = Bankers.BankerID
19>     WHERE BillingTotal < 500
20> ORDER BY PaymentType, BankerName, BillingNumber
21> GO
BillingNumber BankerName           PaymentType Total       Payment
------------- -------------------- ----------- ----------- ----------------
            1 ABC Inc.             Full amount         165          165.000
            2 DEF Inc.             Full amount         165          165.000
            9 DFG Inc.             Full amount         165          165.000
            0 GHJ Inc.             Full amount         165          165.000
            3 HJI Inc.             Full amount         165          165.000
            7 OIP Inc.             Full amount         165          165.000
            4 QWE Inc.             Full amount         165          165.000
            5 RTY Inc.             Full amount         165          165.000
            8 SAD Inc.             Full amount         165          165.000
            6 YUI Inc.             Full amount         165          165.000
(10 rows affected)
1>
2> drop table Billings
3> drop table Bankers;
4> GO
1>
2>


Listing the output from two identical tables.

3> CREATE TABLE SalesMw (
4>     StoreID            integer NOT NULL,
5>     CD_ID               integer  NOT NULL,
6>     QtySold            integer,
7>     SalesDate          datetime)
8> GO
1> INSERT into SalesMw VALUES(1300,2001,10,"Oct 31,1997")
2> INSERT into SalesMw VALUES(1300,2002,15,"Oct 31,1997")
3> INSERT into SalesMw VALUES(1300,2001,5,"Nov 30,1997")
4> INSERT into SalesMw VALUES(1300,2003,16,"Nov 30,1997")
5> INSERT into SalesMw VALUES(1300,2017,9,"Nov 30,1997")
6> INSERT into SalesMw VALUES(1330,2000,2,"Oct 31,1997")
7> INSERT into SalesMw VALUES(1330,2000,109,"Nov 30,1997")
8> INSERT into SalesMw VALUES(1330,2029,5,"Nov 30,1997")
9> INSERT into SalesMw VALUES(1330,2030,5,"Nov 30,1997")
10> INSERT into SalesMw VALUES(1330,2015,20,"Nov 30,1997")
11> INSERT into SalesMw VALUES(1330,2016,66,"Nov 30,1997")
12> INSERT into SalesMw VALUES(1310,2005,11,"Nov 30,1997")
13> INSERT into SalesMw VALUES(1320,2022,14,"Nov 30,1997")
14> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2> CREATE TABLE SalesNe (
3>      StoreID           integer NOT NULL,
4>      CD_ID              integer NOT NULL,
5>      QtySold           integer,
6>      SalesDate         datetime)
7>
8> INSERT into SalesNe VALUES(1200,2006,10,"Oct 31,1997")
9> INSERT into SalesNe VALUES(1200,2007,15,"Oct 31,1997")
10> INSERT into SalesNe VALUES(1200,2007,8,"Nov 30,1997")
11> INSERT into SalesNe VALUES(1200,2008,12,"Nov 30,1997")
12> INSERT into SalesNe VALUES(1200,2009,19,"Nov 30,1997")
13> INSERT into SalesNe VALUES(1210,2008,7,"Oct 31,1997")
14> INSERT into SalesNe VALUES(1210,2009,55,"Nov 30,1997")
15> INSERT into SalesNe VALUES(1210,2010,18,"Nov 30,1997")
16> INSERT into SalesNe VALUES(1210,2022,11,"Nov 30,1997")
17> INSERT into SalesNe VALUES(1210,2023,20,"Nov 30,1997")
18> INSERT into SalesNe VALUES(1210,2020,15,"Nov 30,1997")
19> INSERT into SalesNe VALUES(1220,2018,6,"Nov 30,1997")
20> INSERT into SalesNe VALUES(1220,2005,3,"Nov 30,1997")
21>
22>
23>
24>
25>
26>
27>
28>
29>
30> SELECT * from SalesMw
31> UNION
32> SELECT * from SalesNe
33>
34> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
StoreID     CD_ID        QtySold     SalesDate
----------- ----------- ----------- -----------------------
       1200        2006          10 1997-10-31 00:00:00.000
       1200        2007           8 1997-11-30 00:00:00.000
       1200        2007          15 1997-10-31 00:00:00.000
       1200        2008          12 1997-11-30 00:00:00.000
       1200        2009          19 1997-11-30 00:00:00.000
       1210        2008           7 1997-10-31 00:00:00.000
       1210        2009          55 1997-11-30 00:00:00.000
       1210        2010          18 1997-11-30 00:00:00.000
       1210        2020          15 1997-11-30 00:00:00.000
       1210        2022          11 1997-11-30 00:00:00.000
       1210        2023          20 1997-11-30 00:00:00.000
       1220        2005           3 1997-11-30 00:00:00.000
       1220        2018           6 1997-11-30 00:00:00.000
       1300        2001           5 1997-11-30 00:00:00.000
       1300        2001          10 1997-10-31 00:00:00.000
       1300        2002          15 1997-10-31 00:00:00.000
       1300        2003          16 1997-11-30 00:00:00.000
       1300        2017           9 1997-11-30 00:00:00.000
       1310        2005          11 1997-11-30 00:00:00.000
       1320        2022          14 1997-11-30 00:00:00.000
       1330        2000           2 1997-10-31 00:00:00.000
       1330        2000         109 1997-11-30 00:00:00.000
       1330        2015          20 1997-11-30 00:00:00.000
       1330        2016          66 1997-11-30 00:00:00.000
       1330        2029           5 1997-11-30 00:00:00.000
       1330        2030           5 1997-11-30 00:00:00.000
(26 rows affected)
1>
2> drop table SalesNe;
3> GO


OR operator can be used instead of the UNION operator, as the two equivalent examples.

3>
4>
5> CREATE TABLE employee(
6>    id          INTEGER NOT NULL PRIMARY KEY,
7>    first_name  VARCHAR(10),
8>    last_name   VARCHAR(10),
9>    salary      DECIMAL(10,2),
10>    start_Date  DATETIME,
11>    region      VARCHAR(10),
12>    city        VARCHAR(20),
13>    managerid   INTEGER
14> );
15> GO
1> INSERT INTO employee VALUES (1, "Jason" ,  "Martin", 5890,"2005-03-22","North","Vancouver",3);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (2, "Alison",  "Mathews",4789,"2003-07-21","South","Utown",4);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (3, "James" ,  "Smith",  6678,"2001-12-01","North","Paris",5);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (4, "Celia" ,  "Rice",   5567,"2006-03-03","South","London",6);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (5, "Robert",  "Black",  4467,"2004-07-02","East","Newton",7);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (6, "Linda" ,  "Green" , 6456,"2002-05-19","East","Calgary",8);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (7, "David" ,  "Larry",  5345,"2008-03-18","West","New York",9);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (8, "James" ,  "Cat",    4234,"2007-07-17","West","Regina",9);
2> GO
(1 rows affected)
1> INSERT INTO employee VALUES (9, "Joan"  ,  "Act",    6123,"2001-04-16","North","Toronto",10);
2> GO
(1 rows affected)
1>
2> select * from employee;
3> GO
id          first_name last_name  salary       start_Date              region     city                 managerid
----------- ---------- ---------- ------------ ----------------------- ---------- -------------------- -----------
          1 Jason      Martin          5890.00 2005-03-22 00:00:00.000 North      Vancouver                      3
          2 Alison     Mathews         4789.00 2003-07-21 00:00:00.000 South      Utown                          4
          3 James      Smith           6678.00 2001-12-01 00:00:00.000 North      Paris                          5
          4 Celia      Rice            5567.00 2006-03-03 00:00:00.000 South      London                         6
          5 Robert     Black           4467.00 2004-07-02 00:00:00.000 East       Newton                         7
          6 Linda      Green           6456.00 2002-05-19 00:00:00.000 East       Calgary                        8
          7 David      Larry           5345.00 2008-03-18 00:00:00.000 West       New York                       9
          8 James      Cat             4234.00 2007-07-17 00:00:00.000 West       Regina                         9
          9 Joan       Act             6123.00 2001-04-16 00:00:00.000 North      Toronto                       10
(9 rows affected)
1>
2>
3>       SELECT first_name
4>        FROM employee
5>        WHERE id = "1"
6>       UNION
7>       SELECT first_name
8>        FROM employee
9>        WHERE id = "2"
10> GO
first_name
----------
Alison
Jason
(2 rows affected)
1>
2>
3>       SELECT first_name
4>        FROM employee
5>        WHERE id ="1" OR id = "2"
6> GO
first_name
----------
Jason
Alison
(2 rows affected)
1>
2>
3> drop table employee;
4> GO


UNION same type of columns from different tables

7> CREATE TABLE Employees (
8>      EmployeeID int NOT NULL ,
9>      LastName nvarchar (20) NOT NULL ,
10>     FirstName nvarchar (10) NOT NULL ,
11>     Title nvarchar (30) NULL ,
12>     TitleOfCourtesy nvarchar (25) NULL ,
13>     BirthDate datetime NULL ,
14>     HireDate datetime NULL ,
15>     Address nvarchar (60) NULL ,
16>     City nvarchar (15) NULL ,
17>     Region nvarchar (15) NULL ,
18>     PostalCode nvarchar (10) NULL ,
19>     Country nvarchar (15) NULL ,
20>     HomePhone nvarchar (24) NULL ,
21>     Extension nvarchar (4) NULL ,
22>     Photo image NULL ,
23>     Notes ntext NULL ,
24>     ReportsTo int NULL ,
25>     PhotoPath nvarchar (255) NULL
26>
27> )
28> GO
1>
2> CREATE TABLE Customers (
3>      CustomerID nchar (5) NOT NULL ,
4>      CompanyName nvarchar (40) NOT NULL ,
5>      ContactName nvarchar (30) NULL ,
6>      ContactTitle nvarchar (30) NULL ,
7>      Address nvarchar (60) NULL ,
8>      City nvarchar (15) NULL ,
9>      Region nvarchar (15) NULL ,
10>     PostalCode nvarchar (10) NULL ,
11>     Country nvarchar (15) NULL ,
12>     Phone nvarchar (24) NULL ,
13>     Fax nvarchar (24) NULL
14> )
15> GO
1>
2> INSERT Customers VALUES("1","A","Maria",    "Sales",  "Str. 57", "Berlin"    ,NULL,"12209", "Germany","111-1111111","111-1111111")
3> INSERT Customers VALUES("2","M","Joe",      "Owner",  "Ave. 231","Vancouver" ,NULL,"05023", "Mexico", "(222) 222-3332",NULL)
4> INSERT Customers VALUES("3","H","Thomas",   "Sales",  "Sq.  111","London"    ,NULL,"1D00P", "UK",     "(444) 444-4444","(444) 444-4444")
5> INSERT Customers VALUES("4","B","Berg",     "Order",  "Blv    8","Toronto"   ,NULL,"00222", "Sweden", "4444-55 55 65","5555-55 55 55")
6> INSERT Customers VALUES("5","S","Moos",     "Sales",  "Fort  57","New York"  ,NULL,"68306", "Germany","6666-66666","6666-77777")
7> INSERT Customers VALUES("6","F","Cite",     "Manager","24      ","Dalles"    ,NULL,"67000", "France", "88.60.15.31","88.60.15.32")
8> INSERT Customers VALUES("7","C","Sommer",   "Owner",  "Araq, 67","Paris"     ,NULL,"28023", "Spain",  "(91) 555 22 82","(91) 555 91 99")
9> INSERT Customers VALUES("8","P","Leb",      "Owner",  "12      ","Beijing"   ,NULL,"13008", "France", "91.24.45.40","91.24.45.41")
10> INSERT Customers VALUES("9","D","Elizabeth","Manager","23 Blvd.","Tsawassen","BC", "T2F8M4","Canada", "(604) 555-4729","(604) 555-3745")
11> go
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3> CREATE TABLE Suppliers (
4>      SupplierID int  NOT NULL ,
5>      CompanyName nvarchar (40) NOT NULL ,
6>      ContactName nvarchar (30) NULL ,
7>      ContactTitle nvarchar (30) NULL ,
8>      Address nvarchar (60) NULL ,
9>      City nvarchar (15) NULL ,
10>     Region nvarchar (15) NULL ,
11>     PostalCode nvarchar (10) NULL ,
12>     Country nvarchar (15) NULL ,
13>     Phone nvarchar (24) NULL ,
14>     Fax nvarchar (24) NULL ,
15>     HomePage ntext NULL
16> )
17> GO
1>
2>
3> INSERT Suppliers VALUES(1,"L","N","Manager","L 10","Van",NULL,"2800","Paris","1114108","43844115",NULL)
4> INSERT Suppliers VALUES(2,"Z","D","Manager","V 22","Zaa",NULL,"9999 ZZ","USA"," 1212","(12345) 1210",NULL)
5> INSERT Suppliers VALUES(3,"K","A","Manager","V 12","Lap",NULL,"53120","Finland"," 10956",NULL,NULL)
6> INSERT Suppliers VALUES(4,"G","W","Tester", "1 Hill","Sydney","NSW","2042","Australia","(02) 555-5914","(021) 555-2222",null)
7> INSERT Suppliers VALUES(5,"M","J","Manager","2 St.","Mon","BC","H1J 1C3","Canada","(514) 555-9022",NULL,NULL)
8> INSERT Suppliers VALUES(6,"P","G","Administrator","V 153","Sal",NULL,"84100","Italy","(089) 6547665","(089) 1111111",NULL)
9> INSERT Suppliers VALUES(7,"E","M","Sales","22 Str","Mont",NULL,"71300","France","85.57.00.07",NULL,NULL)
10> INSERT Suppliers VALUES(8,"G","E","Sales","B Ave","Ann",NULL,"74000","France","38.76.98.06","38.76.98.58",NULL)
11> INSERT Suppliers VALUES(9,"F","C","Manager","1 Str","Ste","Calgary","J2S 7S8","Canada","(514) 555-2955","(514) 555-2921",NULL)
12> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3>    SELECT CompanyName AS Name,
4>           Address,
5>           City,
6>           Region,
7>           PostalCode,
8>           Country
9>    FROM Customers
10>    UNION
11>    SELECT CompanyName,
12>           Address,
13>           City,
14>           Region,
15>           PostalCode,
16>           Country
17>    FROM Suppliers
18>    UNION
19>    SELECT FirstName + " " + LastName,
20>           Address,
21>           City,
22>           Region,
23>           PostalCode,
24>           Country
25>    FROM Employees
26> go
Name                                     Address                                                      City            Region          PostalCode Country
---------------------------------------- ------------------------------------------------------------ --------------- --------------- ---------- ---------------
A                                        Str. 57                                                      Berlin          NULL            12209      Germany
B                                        Blv    8                                                     Toronto         NULL            00222      Sweden
C                                        Araq, 67                                                     Paris           NULL            28023      Spain
D                                        23 Blvd.                                                     Tsawassen       BC              T2F8M4     Canada
E                                        22 Str                                                       Mont            NULL            71300      France
F                                        1 Str                                                        Ste             Calgary         J2S 7S8    Canada
F                                        24                                                           Dalles          NULL            67000      France
G                                        1 Hill                                                       Sydney          NSW             2042       Australia
G                                        B Ave                                                        Ann             NULL            74000      France
H                                        Sq.  111                                                     London          NULL            1D00P      UK
K                                        V 12                                                         Lap             NULL            53120      Finland
L                                        L 10                                                         Van             NULL            2800       Paris
M                                        2 St.                                                        Mon             BC              H1J 1C3    Canada
M                                        Ave. 231                                                     Vancouver       NULL            05023      Mexico
P                                        12                                                           Beijing         NULL            13008      France
P                                        V 153                                                        Sal             NULL            84100      Italy
S                                        Fort  57                                                     New York        NULL            68306      Germany
Z                                        V 22                                                         Zaa             NULL            9999 ZZ    USA
(18 rows affected)
1>
2> drop table Customers;
3> drop table Employees;
4> drop table Suppliers;
5> GO


Using Unions to Display Data from Multiple Queries

5> CREATE TABLE Classification (
6>      Classif_ID         integer  NOT NULL PRIMARY KEY,
7>      Classification    varchar(25))
8> GO
1>
2> INSERT into Classification VALUES( 1,"Pop")
3> INSERT into Classification VALUES( 2,"Country")
4> INSERT into Classification VALUES( 3,"Alternative")
5> INSERT into Classification VALUES( 4,"Metal")
6> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3> CREATE TABLE CD (
4>      CD_ID              integer  NOT NULL PRIMARY KEY,
5>      CD_Title           varchar(40),
6>      Composer_ID        integer  NOT NULL,
7>      Classif_ID         integer  NOT NULL,
8>      SalesPrice        money,
9>      AverageCost       money)
10> GO
1> INSERT into CD VALUES(2000,"John",100,1,16.99,6.99)
2> INSERT into CD VALUES(2001,"Chicago 16",107,1,14.99,5.99)
3> INSERT into CD VALUES(2002,"Chicago 17",107,1,14.99,5.99)
4> INSERT into CD VALUES(2003,"Chicago 18",107,1,14.99,5.99)
5> INSERT into CD VALUES(2004,"Greatest Hits",107,1,16.99,7.99)
6> INSERT into CD VALUES(2005,"Midnight",101,3,14.99,5.99)
7> INSERT into CD VALUES(2006,"Mode",115,3,14.99,5.99)
8> INSERT into CD VALUES(2007,"Ultra",115,3,15.99,5.99)
9> INSERT into CD VALUES(2008,"Mindcrime",102,4,14.99,5.99)
10> INSERT into CD VALUES(2009,"Empire",102,4,14.99,5.99)
11> INSERT into CD VALUES(2010,"Land",102,4,12.99,4.99)
12> INSERT into CD VALUES(2011,"Night",103,4,11.99,3.99)
13> INSERT into CD VALUES(2012,"Pyromania",103,4,14.99,5.99)
14> INSERT into CD VALUES(2013,"Hysteria",103,4,14.99,5.99)
15> INSERT into CD VALUES(2014,"Hits",103,4,13.99,4.99)
16> INSERT into CD VALUES(2015,"Hits 2",104,2,15.99,6.99)
17> INSERT into CD VALUES(2016,"Greatest",105,2,14.99,5.99)
18> INSERT into CD VALUES(2017,"Hits 3",106,1,13.99,5.99)
19> INSERT into CD VALUES(2018,"Deep",108,1,12.99,2.99)
20> INSERT into CD VALUES(2019,"Turning",109,1,14.99,5.99)
21> INSERT into CD VALUES(2020,"TheHits",109,1,16.99,7.99)
22> INSERT into CD VALUES(2021,"Cars",110,1,9.99,3.99)
23> INSERT into CD VALUES(2022,"Anthology",110,1,25.99,11.99)
24> INSERT into CD VALUES(2023,"City",110,1,14.99,5.99)
25> INSERT into CD VALUES(2024,"Rick",111,1,11.99,2.99)
26> INSERT into CD VALUES(2025,"Live",112,1,19.99,8.99)
27> INSERT into CD VALUES(2026,"Pat",113,1,16.99,6.99)
28> INSERT into CD VALUES(2027,"Big",114,1,14.99,5.99)
29> INSERT into CD VALUES(2028,"Hurting",114,1,11.99,3.99)
30> INSERT into CD VALUES(2029,"Vol 1",116,1,9.99,2.99)
31> INSERT into CD VALUES(2030,"Vol 2",116,1,9.99,2.99)
32> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3> SELECT CONVERT(varchar(30),SalesPrice) from CD
4> UNION
5> Select Classification from Classification
6> GO
------------------------------
11.99
12.99
13.99
14.99
15.99
16.99
19.99
25.99
9.99
Alternative
Country
Metal
Pop
(13 rows affected)
1>
2> drop table Classification;
3>
4> drop table CD;
5> GO