union操作符

描述

  1. MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
  2. UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。

语法

MySQL UNION 操作符语法格式:

SELECT column1, column2, …
FROM table1
WHERE condition1
UNION
SELECT column1, column2, …
FROM table2
WHERE condition2
[ORDER BY column1, column2, …];

参数说明:

column1, column2, … 是你要选择的列的名称,如果使用 * 表示选择所有列。
table1, table2, … 是你要从中查询数据的表的名称。
condition1, condition2, … 是每个 SELECT 语句的过滤条件,是可选的。
ORDER BY 子句是一个可选的子句,用于指定合并后的结果集的排序顺序。

实例

  1. 基本的 UNION 操作:

SELECT city FROM customers
UNION
SELECT city FROM suppliers
ORDER BY city;

以上 SQL 语句将选择客户表和供应商表中所有城市的唯一值,并按城市名称升序排序。

  1. 使用过滤条件的 UNION:

SELECT product_name FROM products WHERE category = ‘Electronics’
UNION
SELECT product_name FROM products WHERE category = ‘Clothing’
ORDER BY product_name;

以上 SQL 语句将选择电子产品和服装类别的产品名称,并按产品名称升序排序。

  1. UNION 操作中的列数和数据类型必须相同:

SELECT first_name, last_name FROM employees
UNION
SELECT department_name, NULL FROM departments
ORDER BY first_name;

以上 SQL 语句中,departments 表中的 department_name 列被映射到了 employees 表中的 last_name 列,但是列数和数据类型必须相同。

  1. 使用 UNION ALL 不去除重复行:

SELECT city FROM customers
UNION ALL
SELECT city FROM suppliers
ORDER BY city;

具体例子

表名dept
union操作符_第1张图片
表名emp
union操作符_第2张图片

  1. select deptno from dept union select deptno from emp order by deptno;
    【 从dept表和emp表中分别查询deptno,去除重复,并且按deptno升序排序】
    查询结构如下:
    union操作符_第3张图片
  2. select deptno from dept union all select deptno from emp order by deptno;
    【将dep表和emp表中的deptno合并在一起不去重复行,也就是选取所有deptno】
    查询结果如下:
    union操作符_第4张图片

你可能感兴趣的:(T-SQL,sql,数据库)