工会没有给期望的结果,而运营商呢?

时间:2018-06-25 06:15:24

标签: sql union

为什么在此查询中AND运算符给出结果,但Union似乎不起作用?

第一:

select distinct(city) 
from station  
where city not like ('A%') 
  and city not like ('E%')  
  and city not like ('o%')  
  and city not like ('i%')  
  and city not like ('u%') 

第二:

select distinct(city) 
from station  
where city not like ('A%') 
union 
select distinct(city) 
from station  
where city not like ('E%')

2 个答案:

答案 0 :(得分:2)

这些查询将为您提供2种不同的输出: 第一个会选择所有以 not A E o i u 作为首字母的城市

第二个查询将为您提供结果:

第一个结果集:除A%以外的所有城市

第二个结果集:除E%以外的所有城市

联合后:包括A%和E%在内的所有城市

答案 1 :(得分:0)

  • 第一个查询为您提供一个结果集,其中City不开始 与AEoiu。
  • 第二个查询分别获取两个结果集,其中城市 不是以A开头,而城市不是以E开头,然后是UNION 他们。因此,您将在第一个结果集中以开头的城市 排名第二的Euiu和城市以Aoiu开头。因此,UNION的 它们为您提供结果集1和2(以AEiou开头的​​城市)的不同城市的结果集。这与第一个结果集(城市不是以AEiou开头)不匹配。

因此,第一和第二结果集给出了完全不同的结果集。