zoukankan      html  css  js  c++  java
  • SQL SERVER 2008的EXCEPT和INTERSECT

    EXCEPT:用第一个集合与第二个集合比较,返回只存在于第一个集合,但不在第二个集合中的值。

    INTERSECT:比较两个集合,返回两个集合都有的行。

    我们新建一个表

    CREATE TABLE projectPerson

    (

      personId varchar(10),

      projectId varchar(10),

      PRIMARY KEY (personId,projectId)

    )

    GO


    INSERT INTO projectPerson Values('joeb','projBlg')
    INSERT INTO projectPerson Values('joeb','projLitter')
    INSERT INTO projectPerson Values('fredf','projBlg')
    INSERT INTO projectPerson Values('homerr','projLitter')
    INSERT INTO projectPerson Values('stevegr','projBlg')
    INSERT INTO projectPerson Values('stevegr','projLitter')

    GO

    --查看谁参与了其中一个项目获两个项目都参加

    select personId
    from projectPerson
    where projectId='projBig'
    union
    select personId
    from projectPerson
    where projectId='projLitter'

    查看只参加projLittle项目但不参与projBig项目的人

    以前sql server 2000的写法

    select personId
    from projectPerson as projLittle
    where projectId='projLitter'
      and not exists (select *
         from projectPerson as projBig
           where projBig.projectId='projBig'
           and projBig.personId=projLittle.personId)

    现在只需要用except即可

    select personId
    from projectPerson
    where projectId='projLitter'    
    except
    select personId
    from projectPerson
    where projectId='projBig'

    两个项目都参加的人的信息可用intersect:

    select personId
    from projectPerson
    where projectId='projLitter'    
    intersect
    select personId
    from projectPerson
    where projectId='projBig'

  • 相关阅读:
    JS面向对象的理解
    引用类型值的相等判断
    数组的常用方法
    得到一定范围内的随机数
    数组随机排序
    【目标检测大集合】R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记
    卷积层和池化层学习
    R-FCN:基于区域的全卷积网络来检测物体
    【目标检测】Faster RCNN算法详解
    Selective Search for Object Recognition
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2765081.html
Copyright © 2011-2022 走看看