sql 语言 并交差 查询

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:22:01
在执行sql 查询过程中,有这样一个语句:
select age
from s
where age<18 union
select age
from s
where age>20
该语句执行结果是正确的,但是当我把union变成Intersect的时候,就提示在他附近有语法错误,为什么,高手帮忙解决一下!
当然这儿是没有交集,但是换过来是有交集的,提示是语法错误。sql server 2005 支持sql05吗?

select age
from s
where age<>19

or

select age
from s
where age>20 or age<18

--Intersect这是SQL05的功能

你要返回交集? 直接这样写就OK了

select s.age from s where s.age<18 and s.age in (select age from s where age>20)

关注,我试了下,有这个问题。
不过我还有个疑问,select 出age<18和 age>20 的有交集么?
intersect 返回的是两部分查询结果中相同的部分。
注:mysql不支持这个关键字

mysql 不支持 Intersect
select a.*
from
(select age
from s
where age<18) as a

cross join

(select age
from s
where age>20) as b on a.age = b.age;