LeetCode 595. 大的国家
点击直达
如果一个国家满足下述两个条件之一,则认为该国是大国 :
面积至少为 300 万平方公里(即,3000000 km2),或者
人口至少为 2500 万(即 25000000)
编写一个 SQL 查询以报告 大国 的国家名称、人口和面积。
按任意顺序返回结果表。
查询结果格式如下例所示。
用or做法:
select name,population,area from World where area>=3000000 or population>=25000000;
用union做法:
select name,population,area from World where area>=3000000
union
select name,population,area from World where population>=25000000;
区别
- union会删除重复的记录,or不会去掉重复的记录,二者都是对结果集的合并。(我觉得应该只是在处理涉及到多个列的时候会有这种区别,在对单列进行筛选的时候不会有区别)
- union运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
- 另外一篇文章提到where子句中使用or会引起全表扫描,一般的用union来代替or。