zoukankan      html  css  js  c++  java
  • SQL Server中except和intersect用法

    except是A集合减去B集合的结果;intersect是A集合和B集合的交集;都是返回的是非重复值,很多属性都和union类似。

    还是以student为例

    select * from student;

    image

    select * into student1 from student;
    go
    insert into student1 values('aaa',20,'Js'),('bbb',30,'js'),('ccc',40,'sh');
    go
    insert into student1 values('aa',10,'JiangSu');
    go
    select * from student1 order by 1;

    image

    student1中name为aa两行是重复的;

    student1还比student多加了三行,aaa,bbb,ccc

    select * from student1
    except
    select * from student

    image

    结果只有aaa,bbb,ccc;没有aa那行

    select * from student1
    intersect
    select * from student

    image

    只有student表中的13行,aa那行没有重复

    这里只注重返回结果是没有重复行的,except和intersect 暂时没有all选项,这点和union不同。

    关于except、intersect、union的优先级验证:

    select * into student2 from student1;
    go
    delete from student2 where name='aaa';
    go
    select * from student2 order by 1;
    go

    image

    student2的表比student1表少一行aaa的记录

    select * from student2
    except
    select * from student1
    intersect
    select * from student

    image

    如果你怀疑student2记录少于student1的记录,except有问题的话,我们互换下

    select * from student1
    except
    select * from student2
    intersect
    select * from student

    image

    intersect的优先级高于except

    同样的原理测试,intersect的优先级也高于union

    except和union的级别是相同的,顺序执行的。

  • 相关阅读:
    内网/局域网 DNS获取不正确
    Qt5.7 + D2D渲染引擎。 画面闪烁,几乎没图像显示
    安网路由器 移动宽带和电信宽带混用问题解决
    安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工
    Qt5.7+VS2015环境下使用QtCreator编译QtAV视频库
    Android Gradle编译so库或运行时出现 text relocations 崩溃的正确解决方法
    使用Jenkins + shell(gradle)快速搭建 Android 构建机
    Android 获得控件在屏幕中的坐标
    Mac 共享WiFi给任意设备(Android,Iphone等等)
    股票、外汇、期货、数字货币小总结
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/3770017.html
Copyright © 2011-2022 走看看