sqlserver2000中实现差集操作
来源:互联网 发布:php从入门到精通电子版 编辑:程序博客网 时间:2024/06/06 01:49
昨天遇到一个问题,在sqlserver2000中实现差集(sqlserver2000不支持两个select语句间的intersect和except操作),自己写的语句和答案的查询结果不一样,一直看不出两个语句在逻辑上有什么不同,今天对照结果集才发现了问题所在,拿来分享下:
choices表结构
CREATE TABLE [dbo].[CHOICES] (
[no] [int] NOT NULL ,
[sid] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[tid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[cid] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[score] [int] NULL
) ON [PRIMARY]
courses表结构
CREATE TABLE [dbo].[COURSES] (
[cid] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cname] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[hour] [int] NULL
) ON [PRIMARY]
select ch1.sid from choices ch1,choices ch2
where ch1.cid=(select cid from courses where cname='c++')
and not (ch2.cid=(select cid from courses where cname='java'))
and ch1.sid=ch2.sid
select ch1.sid
from choices ch1
where ch1.cid=(select cid from courses where cname='c++')
and not exists (select * from choices ch2 where ch2.sid=ch1.sid and ch2.cid=(select cid from courses where cname='java'))
注:cid是courses的主键choices的外键
分析:
1.此结果是选c++的所有人的学号,而不是只选c++不选java的人.
2.此语句结果只不过是从返回的选择了c++的选课记录中剔除了同时选java的选课记录,即查询返回的结果中不包含选java的记录, 但并不代表数据库中没有该学生选java的选课记录
- sqlserver2000中实现差集操作
- hive中实现差集等操作
- sqlserver2000中实现over函数
- SQLServer2000存储过程中通过数据库链接操作Oracle数据库
- delphi中实现Sqlserver2000数据库的备份与还原!
- MS-SQLServer2000中字符型数据自动编码的实现
- MS-SQLServer2000中字符型数据自动编码的实现
- 如何在sqlserver2000中实现oracle的序列
- sqlserver2000实现row_number()函数
- set集合实现交并差操作;Iiterator实现无序遍历
- 通过存储过程实现记录集的循环 SqlServer2000
- 使用多维数据集在SQLServer2000 中有效存储数据
- 使用OPENDATASOURCE 函数,在查询中实现从ACCESS获取数据,并插入SQLSERVER2000表中
- SQLServer2000同步复制技术实现
- Java中对集合的并,交,联集,差操作
- 【mysql】mysql中基本的增删改差操作案例
- shell中使用sort和uniq实现两文件的并集,交集和差集
- 唯爱小粽子:Java中交集、并集、差集的实现
- OpenGL中蒙板缓冲区的妙用(转)
- windows server 2003对上传文件有大小限制
- OpenGL中蒙板缓冲区的妙用
- 用OpenGL实现纹理自动生长(蒋立华,秦雪,刘晓东,刘归荣)
- 使用Birt创建含有子报表的报表
- sqlserver2000中实现差集操作
- OpenGL 中贴长宽不为2的幂的纹理的方法(李传中)
- List引起的系统瓶颈
- 最常见的linux命令收集(收集中~~~)
- Hibernate与JDBC的区别
- 水晶报表中如何动态增加字段 (网摘)
- 三维饼状图
- 在 Tomcat 上配置虚拟主机
- ClistCtrl 复杂问题探究