📜  SQL |联合条款

📅  最后修改于: 2021-09-09 10:39:06             🧑  作者: Mango

Union 子句用于组合两个单独的 select 语句,并将结果集生成为两个 select 语句的并集。
笔记:

  1. 两个 select 语句中使用的字段必须具有相同的顺序、相同的数量和相同的数据类型。
  2. Union 子句在结果集中产生不同的值,为了获取重复值也必须使用 UNION ALL 而不是仅使用 UNION。

基本语法:

SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;

Resultant set consists of distinct values.
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;

Resultant set consists of duplicate values too.

表格1

表12

查询

  • 从 Student 和 Student_Details 表中获取不同的 ROLL_NO。
    SELECT ROLL_NO FROM Student UNION SELECT ROLL_NO FROM Student_Details; 
    

    输出:

    ROLL_NO
    1
    2
    3
    4
  • 从 Student 和 Student_Details 表中获取 ROLL_NO,包括重复值。
    SELECT ROLL_NO FROM Student UNION ALL SELECT ROLL_NO FROM Student_Details; 
    

    输出:

    ROLL_NO
    1
    2
    3
    4
    3
    2
  • 要获取 ROLL_NO ,来自 Student 表 WHERE ROLL_NO 大于 3 和 ROLL_NO 的分支,来自 Student_Details 表 WHERE ROLL_NO 小于 3 的分支,包括重复值,最后按 ROLL_NO 对数据进行排序。
    SELECT ROLL_NO,NAME FROM Student WHERE ROLL_NO>3 
    UNION ALL
    SELECT ROLL_NO,Branch FROM Student_Details WHERE ROLL_NO<3
    ORDER BY 1; 
    
    Note:The column names in both the select statements can be different but the
     data type must be same.And in the result set the name of column used in the first
     select statement will appear. 
    

    输出:

    ROLL_NO NAME
    1 Information Technology
    2 Computer Science
    4 SURESH