集合论虽然是SQL语言的基础之一,但是在早期的SQL 却不能很好的支持集合运算。受这点影响,各大数据库的支持程度也是参差不齐。SQL Server 从 2005版(关系型数据库已经发展20多年了...)才开始支持 INTERSECT 和 EXCEPT ,而同一时间点MySQL还不支持(还列在中长期发展计划中...)。
用下面这个例子,看一下SQL的集合运算:
1.场景与需求
如下两张表,A与B,比对其数据是否一致,若不一致则输出异常数据:
A:
B:
2.SQL实现:
(1)比对表
MSSQL实现:
MySQL实现:
(2)输出异常数据
MSSQL实现:
MySQL实现:
3.SQL解读:
except:使用外连接实现,条件语句中既要考虑全新记录也要考虑数据不一致的记录;
intercept:使用内连接实现,连接条件为全字段。
/*原创,转载请联系!*/