晋城建设公司网站,谷歌推广效果好吗,花多少钱能把网站做到页面,零基础怎么当程序员UNION ALL
UNION ALL 用于合并两个或多个 SELECT 语句的结果。 请注意#xff0c;UNION ALL 合并的每个 SELECT 语句必须是查询相同数量#xff0c;相同数据类型的字段#xff0c;且顺序也必须一致。另外结果集中的列名总是等于 UNION ALL 中第一个 SELECT 语句中的列名。 …UNION ALL
UNION ALL 用于合并两个或多个 SELECT 语句的结果。 请注意UNION ALL 合并的每个 SELECT 语句必须是查询相同数量相同数据类型的字段且顺序也必须一致。另外结果集中的列名总是等于 UNION ALL 中第一个 SELECT 语句中的列名。
语法
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;示例 从students学生数据表查询理科三班和文科三班的学生id学生姓名班级
写法一 使用我们之前的学习的 WHERE … IN … 方式
SELECT id,name,clazz
FROM students
WHERE clazz IN (理科三班,文科三班);写法二 使用 UNION ALL 结合两个 SELECT 查询的方式
SELECT id,name,clazz
FROM students
WHERE clazz 理科三班
UNION ALL
SELECT id,name,clazz
FROM students
WHERE clazz 文科三班;观察这两种写法的结果写法一的结果中理科三班和文科三班的数据行是交错分布的但是写法二的结果明显是分别从students表中查询出两部分结果再纵向拼接而成的这也是使用 UNION ALL的前提是每个SELECT查询的字段完全一致的原因。
带有 ORDER BY 的 UNION ALL
思考一个问题如果我希望在 UNION ALL 后的结果中进行排序操作那是不是每个 SELECT 语句都要加 ORDER BY 呢 来测试一下 从students学生数据表查询理科三班和文科三班的学生id学生姓名班级并且按学生ID升序排列
错误写法
SELECT id,name,clazz
FROM students
WHERE clazz 理科三班
ORDER BY id
UNION ALL
SELECT id,name,clazz
FROM students
WHERE clazz 文科三班
ORDER BY id;很明显这种写法是不行的报错 Incorrect usage of UNION and ORDER BY意思为 不正确地使用UNION和ORDER BY
正确写法
SELECT id,name,clazz
FROM students
WHERE clazz 理科三班
UNION ALL
SELECT id,name,clazz
FROM students
WHERE clazz 文科三班
ORDER BY id;使用UNION命令时需要注意只能在最后使用一个ORDER BY命令是将两个查询结果合在一起之后再进行排序
UNION
UNION 同样用于合并两个或多个 SELECT 语句的结果。与 UNION ALL 唯一不同的地方在于 UNION 对查询结果进行去重操作对所有重复出现的相同数据行只保留一行结果其用法与 UNION ALL 完全一致。
此处不再过多赘述大家自己尝试一下即可。
本专栏将持续更新对数据库SQL感兴趣的同学可以关注一下谢谢