面向集合的思维编写SQL(3-手动实现except与intersect)

集合论虽然是SQL语言的基础之一,但是在早期的SQL 却不能很好的支持集合运算。受这点影响,各大数据库的支持程度也是参差不齐。SQL Server 从 2005版(关系型数据库已经发展20多年了...)才开始支持 INTERSECT 和 EXCEPT ,而同一时间点MySQL还不支持(还列在中长期发展计划中...)。

 

用下面这个例子,看一下SQL的集合运算:

1.场景与需求

如下两张表,A与B,比对其数据是否一致,若不一致则输出异常数据:

A:

image.png

B:

image.png

2.SQL实现:

(1)比对表

MSSQL实现:

image.png

MySQL实现:

image.png

 

(2)输出异常数据

MSSQL实现:

image.png

MySQL实现:

image.png

image.png

3.SQL解读:

except:使用外连接实现,条件语句中既要考虑全新记录也要考虑数据不一致的记录;

intercept:使用内连接实现,连接条件为全字段。

 

 

/*原创,转载请联系!*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OMax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值