• 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

  • 相关阅读:
    ABAP Webdynpro Interface View的用法
    ABAP Webdynpro的跟踪工具WD_TRACE_TOOL
    git 速查
    Python 解析含有命名空间(xmlns)的xml文件(基于ElementTree)
    完全显示DataFrame中行、列内容
    解决Jupyter Notebook中for循环输出DataFrame不够美观
    git配置别名
    元素可拖拽(移动端与pc端)
    pointer network和recursive神经网络
    ELMO,BERT和GPT简介
  • 原文地址:https://www.cnblogs.com/JackKing-defier/p/4518024.html
Copyright © 2020-2023  润新知