• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQL2005学习笔记 EXCEPT和INTERSECT运算符

SQL2005学习笔记 EXCEPT和INTERSECT运算符

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了SQL2005,学习笔记,EXCEPT,INTERS等相关知识,希望本文的分享对您有所帮助

EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值。

1.简介
EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值。
2.区别
EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。
INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值。
3.注意事项
(1).使用EXCEPT或INTERSECT比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容
(2).INTERSECT运算符优先于EXCEPT
(3).SELECT INTO必须是包含INTERSECT或EXCEPT运算符的语句中的第一个查询,用来创建容纳最终结果集的表
(4).ORDER BY子句中的列名或别名必须引用左侧查询返回的列名
4.例题:
代码如下:
--建立3个表,分别插入数据
create table TableA(col1 int)
insert into TableA select 1
insert into TableA select 1
insert into TableA select 2
insert into TableA select 3
insert into TableA select 4
insert into TableA select 4
insert into TableA select 5
insert into TableA select null
insert into TableA select null

create table TableB(col2 int)
insert into TableB select null
insert into TableB select 1
insert into TableB select 2
insert into TableB select 3

create table TableC(col3 int)
insert into TableC select 1
insert into TableC select 5
insert into TableC select 6


--利用EXCEPT
--找出TableA表的col1列不存在Tablec表col1列的所有非重复值
SELECT col1 FROM TableA
EXCEPT
SELECT col3 FROM Tablec

结果如下:
col1
-----------
NULL
2
3
4


--sql 2000的版本,用not exists实现EXCEPT的功能
SELECT col1
FROM TableA as a
where not exists(SELECT col3 FROM Tablec where a.col1=col3)
group by col1

--sql 2000,not in是得不到上述结果的
--空值表示值未知。空值不同于空白或零值。没有两个相等的空值。
--比较两个空值或将空值与任何其他值相比均返回未知,这是因为每个空值均为未知。
--使用IN或NOT IN比较后返回的所有空值都将返回UNKNOWN。
--将空值与IN或NOT IN一起使用会产生意外结果。
SELECT col1
FROM TableA
where col1 not in(SELECT col3 FROM Tablec)
group by col1

结果如下:
col1
-----------
2
3
4


--INTERSECT运算符优先于EXCEPT
--运算步骤是:先运算TableB和TableC的INTERSECT,再和TableA运算EXCEPT
SELECT col1 FROM TableA
EXCEPT
SELECT col2 FROM TableB
INTERSECT
SELECT col3 FROM TableC

结果如下:
col1
-----------
NULL
2
3
4
5


--SELECT INTO的应用
--SELECT INTO必须是语句中的第一个查询
--我记得SELECT INTO与UNION运算符的使用也是这样的规则
SELECT col1
into #tem
FROM TableA
EXCEPT
SELECT col3
FROM Tablec

select * from #tem
drop table #tem

结果如下:
col1
-----------
NULL
2
3
4


--ORDER BY子句
--ORDER BY子句中的列名或别名必须引用左侧查询返回的列名
SELECT col1 FROM TableA
INTERSECT
SELECT col3 FROM TableC
order by col1

结果如下:
col1
-----------
1
5
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 解析MSSQL跨数据库查询的实现方法
  • MSSQL根据ID进行分页实现方法
  • sql2005的sp4补丁安装失败是什么原因
  • SQL2005服务器因重装改名后出错的拒绝方法
  • sql2005无法连接服务器1433端口没有监听的处理方法
  • sql2005 安装教程 图文
  • mssql2005字符串连接方法 避免无效的连接错误
  • 解决SQL2005备份数据库.dat或bak还原时的结构错误的解决方法
  • SQL Server2005下的安全操作技巧分享
  • SQL2005 高效分页sql语句

相关文章

  • 2018-12-05在 SQLSERVER 中快速有条件删除海量数据
  • 2018-12-05SQLSERVER查询所有数据库名,表名,和字段名的语句
  • 2018-12-05Access使用查询 在查询中执行计算的注意事项
  • 2017-05-11通过mysqladmin远程管理mysql的方法
  • 2018-12-05如何理解MySQL数据库的优化
  • 2018-12-05用mysqldump备份和恢复表的实例详解
  • 2018-12-05mysql其他函数
  • 2018-12-05用sql脚本创建sqlserver数据库范例语句
  • 2018-12-05简单介绍Mysql的SQL服务器模式
  • 2018-12-05mysql 5.7.11 winx64快速安装配置教程_MySQL

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • windows下忘记MySQL密码的修改方法
    • MySql存储过程异常处理示例代码分享
    • MySQL 存储过程和"Cursor"的使用方法
    • SQLServer2005 Output子句获取刚插入的ID值
    • mysql复制表字段到另外一个表的字段
    • 了解MySQL如何优化
    • Mysql ERROR 1577错误解决方法
    • SQL错误:相关的信息为:用户 sa 登录失败。原因: 未与信任 SQL
    • mysql sql_mode="" 的作用说明
    • 远程MySQL数据库无法访问设置

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有