欢迎来到天天文库
浏览记录
ID:34725015
大小:57.38 KB
页数:6页
时间:2019-03-10
《oracle及sqlserve中minus的使用方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MINUS指令是运用在两个SQL语句上。它先找出第一个SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料就被抛弃。MINUS的语法如下:[SQL语句1]MINUS[SQL语句2]我们继续使用一样的例子:Store_Information表格store_nameSalesDateLosAngeles$1500Jan-05-1999SanDiego$250Jan-07-1999LosAngeles$300Ja
2、n-08-1999Boston$700Jan-08-1999InternetSales表格DateSalesJan-07-1999$250Jan-10-1999$535Jan-11-1999$320Jan-12-1999$750而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的SQL语句:SELECTDateFROMStore_InformationMINUSSELECTDateFROMInternet_Sales结果:DateJan-05-1999Jan-08-1999"Jan-05-1999","Jan-07-1999",and"Ja
3、n-08-1999"是"SELECTDateFROMStore_Information"所产生的结果。在这里面,"Jan-07-1999"是存在于"SELECTDateFROMInternet_Sales"所产生的结果中。因此"Jan-07-1999"并不在最后的结果中。请注意,在MINUS指令下,不同的值只会被列出一次。SQL中的UNION用法UNION指令的目的是将两个SQL语句的结果合并起来。从这个角度来看,UNION跟JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料。UNION的一个限制是两个SQL语句所产生的栏位需要是同样的资料种类。另外,当我们用
4、UNION这个指令时,我们只会看到不同的资料值(类似SELECTDISTINCT)。UNION的语法如下:[SQL语句1]UNION[SQL语句2]假设我们有以下的两个表格,表格:Store_Informationstore_name Sales DateLosAngeles $1500 Jan-05-1999SanDiego $250 Jan-07-1999LosAngeles $300 Jan-08-1999Boston $700
5、 Jan-08-1999表格:InternetSalesDate SalesJan-07-1999 $250Jan-10-1999 $535Jan-11-1999 $320Jan-12-1999 $750而我们要找出来所有有营业额(sales)的日子。要达到这个目的,我们用以下的SQL语句:SELECTDateFROMStore_InformationUNIONSELECTDateFROMInternet_Sales结果:DateJan-05-1999Jan-07-1999Jan-08-1999Jan-10
6、-1999Jan-11-1999Jan-12-1999有一点值得注意的是,如果我们在任何一个SQL语句(或是两句都一起)用"SELECTDISTINCTDate"的话,那我们会得到完全一样的结果。名字可以不一样。但是,数据类型必须相似。也就是说主表(第一个表)第一列是varchar(100),副表(第一个以外的所有表)的第一列都要是varchar(100&&<100)(char好像也可以你试一下吧,或是可以自动转换数据类型),其它是不行的,还有几个表的列数必须相同SqlServer2005中开始使用【execpt】实现和oracle中【minus】一样的功能,但是Sql
7、Server2000中并不支持【execpt】只能用【notexists】实现。值得注意的是SqlServer中使用子查询的时候必须要给子查询起名字,就像上面的【t】,否则会报错。oracle里面的minus,换到sql2000里面是什么?举例:selectcount(*)as“次数”from((selectcallidfrom日志表where查询条件1groupbycallidminus(selectidfrom日志表where查询条件2));Sqlserver:selectcount(*)as“次数”from((selectcalli
此文档下载收益归作者所有