SQL学习笔记14- 组合查询

组合查询

大多数SQL只返回单条SELECT语句,但有些SQL语句允许从多条SELECT中查询结果并返回,称为组合查询。两种情况需要用到:

在一个查询中从不同的表返回结构数据

对一个表执行多个查询,按一个查询返回数据

创建组合查询

UNION函数放在各条语句之间

例如:

SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_name='Fun4ALL';

可以看到,UNION非常容易使用,但是使用时有规则。

1.UNION必须由两条或者以上的SELECT组成,语句之间用UNION分隔,三个SELECT语句就用两个UNION

2.UNION的每个查询必须包含相同的列、表达式或者聚集函数

3.列数据类型必须兼容

如果UNION的SELECT的列名不同,会返回第一个列名。

包含或取消重复的行

UNION语句会自动去除重复的行,如果想返回所有的行,需要使用UNION ALL

对组合查询结果排序

SELECT语句的输出用ORDER BY字句排序,在用UNION组合查询时,只能用一条ORDER BY字句,必须位于最后一条SELECT语句之后。

SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_name='Fun4ALL'
ORDER BY cust_name,cust_state;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值