本系列为自己学习时的笔记及心得体会,转载请注明出处。
利用UNION操作符将多条SELECT语句组合成一个结果集。
1、组合查询
主要有两种情况需要使用组合查询:
△ 在一个查询中从不同的表返回结构数据
△ 在一个表执行多个查询,按一个查询返回数据
2、创建组合查询
需求:需要Illinois,Indiana和Michigan等美国几个州的所有顾客的报表,还有不管位于哪个州的所有的Full4ALL。
SQL如下:
不使用UNION:
SELECT * FROM customers where cust_state IN ('IL','IN','MI')
OR cust_name = 'Fun4ALL'
使用UNION组合:
SELECT * FROM customers where cust_state IN ('IL','IN','MI')
UNION
select * FROM customers WHERE cust_name = 'Fun4ALL'
结果是一样的:
使用UNION,需要满足几个条件:
△ 必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔
△ 每个查询必须包含相同的列、表达式或聚集函数
△ 列数据类型必须兼容
可看到上面使用UNION是会去掉重复行的,那么,如果不想去掉,可使用UNION ALL。输入输出如下:
如果需要对组合查询结果进行排序,可在最后加入ORDER BY 语句。如下: