在VFP中可以用SQL语句中except?

treehome 2002-10-24 05:26:59
在VFP中可以用SQL语句中except?
我的写法是:
select * from a
except
select * from b
目的是找出表a不在表b中的记录(a,b表的结构是一样的)
有无详细的说明用法?
...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
boomit 2002-10-30
  • 打赏
  • 举报
回复
vfp中不存在except,
  • 打赏
  • 举报
回复
没有except
只能换其他办法了
xiaowei_2002 2002-10-25
  • 打赏
  • 举报
回复
IN 和 NOT IN
IN 关键字用于决定一个特定值是否是内部查询所产生的结果列表值中的一个值。相反,NOT IN 决定了某个特定值是否不存在于一个内部查询的结果集中。

对包含条件(IN 关键字),子查询的结果可以是一组数值。例如,在 temp2 中列出所有包含在 temp1 中的记录。

例一
temp1 记录数:90112
temp2 记录数 22528
两表均按 name 建立索引,temp2 全部都是包含在 temp1 里的。

用子查询:
Select temp2.* ;
from temp2 ;
where name in (sele name from temp1) 1.542秒(有索引)  4.596(无索引)

用联接:
select temp2.* ;
from temp2 ;
join temp1 ;
on temp2.name=temp1.name 2.384秒(有索引)  5.658(无索引)

相关的时间都是有一秒左右。这应该是因为子查询首先执行,它把 temp1 中的一部分(name)读入内存,然后 temp1 再在其中进行比较;而联接则一开始就是读文件,所以就慢了一点。

例二
列出没有采购的公司:
select company from customer ;
where cno not in ;
(select cno from invoices)

在上例中,先用 IN 关键字进行过滤,当过滤的条件表达式 cno 未出现在 invoices. Cno 中时便被选择出来。请注意 where 子句中的 NOT 关键字的用法,如果不用 NOT 关键字,则上面查询的作用就是列出有采购的公司。

IN查询中的子查询,匹配主查询的一个值。可得出一组值来检查包含关系。
因此,当希望由 SQL 产生一组有效值,而不是由用户输入时,可用 IN 子查询的方式。
量词只适用于来子查询的 IN 谓词。IN 谓词只是简单地判断外部查询的值是否与值表中的某一个值相等。量词可扩展这一包含关系,它可用于任何有效的比较符(如 <,>,<>等等)。量词可以是 ANY、SOME或ALL。

2,734

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧