oracle及sqlserve中minus的使用方法

oracle及sqlserve中minus的使用方法

ID:34725015

大小:57.38 KB

页数:6页

时间:2019-03-10

oracle及sqlserve中minus的使用方法_第1页
oracle及sqlserve中minus的使用方法_第2页
oracle及sqlserve中minus的使用方法_第3页
oracle及sqlserve中minus的使用方法_第4页
oracle及sqlserve中minus的使用方法_第5页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。