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

  • 相关阅读:
    linux 网络不通问题排查
    linux下挂载U盘
    git 详细教程网址
    字符串的全排列和组合算法
    D-BUS详细分析
    linux socket编程之TCP与UDP
    Linux下的 .o、.a、.so文件
    Fiddler HTTPS指南
    nm指令
    无法使用xcode打出ipa包的解决方法
  • 原文地址:https://www.cnblogs.com/JackKing-defier/p/4518024.html
Copyright © 2011-2022 走看看