输出为在前一个集合中存在,而不存在于第二个集合的元组。
如果,选取两个元组,并且元组名称不同会出现什么结果呢?
使用之前使用过的示例,构建代码如下:
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
SQL中对于两个不同的表中的属性取差集except运算
标签:
查看更多关于SQL中对于两个不同的表中的属性取差集except运算的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did160569