SQL Union 子句
Union子句用于组合两个独立的选择语句,并生成作为两个选择语句的联合的结果集。
注意:
- 两个选择语句中使用的字段必须是相同的顺序、相同的数字和相同的数据类型。
- 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.
查询
- 从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;
Output:
ROLL_NO
1
2
3
4
3
2
- 要获取ROLL_NO,可以从学生表(其中ROLL_NO大于3)获取NAME,从Student表(其中ROLL_NO小于3)获取Branch,可以从Student_Details表(其中ROLL_NO小于3)获取Branch,其中包含重复的值,最后通过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;
注意: 两个选择语句中的列名可以不同,但数据类型必须相同。在结果集中,将出现第一个选择语句中使用的列的名称。
输出:
ROLL_NO | NAME |
---|---|
1 | Information Technology |
2 | Computer Science |
4 | SURESH |