你好,查了access函数,在access中貌似没有intersect和except函数哦,oracle里面有intersect,但是没有except(oracle中minus代替except功能),except在db2里面是有的。
SELECT name, course_id
FROM instructor, teaches
WHERE (instructorID , dept_name) = (teachesID ,'Biology');
这个写法没有见过,改成下面试试
SELECT name, course_id
FROM instructor, teaches
WHERE instructorID=teachesID and dept_name='Biology';
有问题再追问吧,望采纳。
用SQL语句实现的一个简单除法 *** 作,把问题一个一个分开来解释:
1查询在主查询中用到了depositor表。而在它的嵌套子查询中,同样用到了这张表。所以,这个查询为相关子查询。
相反,如果这个嵌套查询在子查询中没有用到主查询中的表,那么我们称之为无关子查询。
相关子查询和无关子查询的在使用上的区别是什么呢?如果一个嵌套查询中包含无关子查询。那么我们会先执行子查询,在子查询结果的这张表中,我们再执行主查询。也就是说在子查询结果的基础之上再进行查询。
而相关子查询不同,在主查询中扫描一条记录,比如果我们拿到了一条depositor的记录A,我们会把A带入到子查询中,看结果是否为真,如果为真,那么就输出A。然后取depositor的表中的下一项B。一次逐条扫描。
2在数据库中,如果我们想表示关系A包含关系B。我们应该怎么表示呢?
对!用NOT EXISTS关键字。
如果我们说A包含B,那么也就等价于NOT EXISTS ( B EXCEPT A)
换句话说就是 ==》不存在属于B而不属于A的元组。那么也就是A包含B。
1说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
方法一:select into b from a where 1<>1
方法二:select top 0 into b from a
2注意:复制的新表中的所有字段都将没有默认值,即使源表中有设默认值
说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:from b in '"&ServerMapPath("")&"\datamdb" &"' where
3说明:显示文章、提交人和最后回复时间
select atitle,ausername,badddate from a,(select max(adddate) adddate from table,a where tabletitle=atitle) b
4说明:两张关联表,删除主表中在副表中没有的信息
delete from table1 where not exists ( select from table2 where table1field1=table2field1 )
注意:
若将
select from table2 where table1field1=table2field1
改为
select from table1,table2 where table1field1=table2field1
多了一个table1
则删除不成功
5说明:日程安排提前五分钟提醒
select from 日程安排 where datediff(mi,开始时间,getdate())>5
6说明:一条sql 语句搞定数据库分页
select top 10 b from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b主键字段 = a主键字段 order by a排序字段
7说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tbb=tab)
8说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
9说明:随机取出10条数据
select top 10 from tablename order by newid()
10说明:随机选择记录
select newid()
11说明:删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,)
12说明:列出数据库里所有的表名
select name from sysobjects where type='U'
13说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
使用SQL语句 用代替过长的字符串显示
语法:
SQL数据库:select case when len(field)>10 then left(field,10)+'' else field end as news_name,news_id from tablename
Access数据库:SELECT iif(len(field)>2,left(field,2)+'',field) FROM tablename;
--获得当月最后一天,时间全是0,如:2007-09-30 00:00:00000
select dateadd(dd,-1,dateadd(mm,datediff(mm,0,dateadd(mm,1,getdate())),0))
--获得当月最后一天,时间为当前时间,如:2007-09-30 12:07:37030
select dateadd(dd,-1,dateadd(mm,1,getdate()-day(getdate())+1))
--获得当月天数,如:30
select datediff(dd,getdate()-day(getdate())+1,dateadd(mm,1,getdate()-day(getdate())+1))
+++
Access2000 使用SQL语句联接表
以上就是关于access中的SQL,关于distinct和intersect和except的提问全部的内容,包括:access中的SQL,关于distinct和intersect和except的提问、SQL数据库中除法用什么来实现、SQL语句有哪些常用子句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)