数据库UNION和UNION ALL比较

UNION能够把结果集合并

SELECT * FROM A UNION SELECT * FROM B

如果能确定没有重复行,建议使用UNION ALL,不用排序。

  1. order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果。对于Union、Union All、Intersect、Minus都有效。
  2. Union可以对字段名不同但数据类型相同的结果集进行合并;
  3. 如果字段名不同的结果集进行Union,那么对此字段的Order by子句将失效。
  4. Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
  5. Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
  6. Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
  7. Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
  8. 可以在最后一个结果集中指定Order by子句改变排序方式。



fatkun

15条评论

好像叫联合查询什么的。这个代码,一般用到的地方多么?像那些大型程序,大型网站?

感觉这个用得很少吧。。我也没用过,使用这个需要字段类型和字段个数一一对应。

发表评论

电子邮件地址不会被公开。