zoukankan      html  css  js  c++  java
  • SQL中对于两个不同的表中的属性取差集except运算

    SQL中对两个集合取差集运算,使用except关键字,语法格式如下:

    SELECT column_name(s) FROM table_name1
    EXCEPT
    SELECT column_name(s) FROM table_name2

    输出为在前一个集合中存在,而不存在于第二个集合的元组。

    如果,选取两个元组,并且元组名称不同会出现什么结果呢?

    使用之前使用过的示例,构建代码如下:

    create table employee
    (empname     char(6),
    numchildren    int
    )
    
    create table dependent
    (depname     char(6),
    age    int
    )
    
    insert into employee values('haohao',2);
    insert into employee values('haohao',4);
    insert into employee values('fgsd',5);
    insert into employee values('hds',7);
    insert into employee values('hauuo',9);
    insert into employee values('hsao',4);
    insert into employee values('hhao',5);
    
    
    insert into dependent values('haohao',2);
    insert into dependent values('hdgso',2);
    insert into dependent values('hreo',2);
    insert into dependent values('hjh',2);
    insert into dependent values('haaao',2);

      对于两个含有不同属性的工作表,使用except操作:

    (select  empname,numchildren
    from employee)
    except
    (select depname,age
    from dependent)

    输出结果如下:

    "hds ";7
    "hhao ";5
    "hsao ";4
    "hauuo ";9
    "haohao";4
    "fgsd ";5

    列的名字为“empname”和“numchildren”,是employee的属性。

    测试完毕,except操作还是会根据定义,筛选出符合要求的结果。

      

      现在玩点新花样

    如果两个表的属性数目不同,会出现什么样的结果呢?

    新构建一个数据表,代码如下:

    create table newone
    (newname     char(6),
    newnum    int,
    tel        int
    )

    插入数据:

    insert into newone values('haohao',2,6);
    insert into newone values('haohao',5,6);
    insert into newone values('haoyo',2,6);
    insert into newone values('h6ao',2,6);
    insert into newone values('hrhao',2,6);

    语句出错,显示结果为:

    错误: 每一个 EXCEPT 查询必须有相同的字段个数
    LINE 4: (select depname,age
    ^

    ********** Error **********

    错误: 每一个 EXCEPT 查询必须有相同的字段个数
    SQL state: 42601

    Character: 57

  • 相关阅读:
    ubuntu 15.04默认root用户登陆
    hive的not in
    Spark 1.4.1中Beeline使用的gc overhead limit exceeded
    Sequoiadb该如何选择合适的SQL引擎
    scala的object知识点
    scala中同步块
    英语口语练习系列-C36-城市-谈论活动-登高
    英语口语练习系列-C35-马戏-谈论语言-己亥杂诗
    英语口语练习系列-C34-儿童-谈论物品和人-武陵春
    英语口语练习系列-C33-露营-谈论日期-离思
  • 原文地址:https://www.cnblogs.com/JackKing-defier/p/4518024.html
Copyright © 2011-2022 走看看