补集EXCEPT 的使用
补集的定义:
参数说明:
● UNION: 求两个数据集的并集,即将两个数据集合并成一个数据集。
● INTERSECT:求两个数据集的交集。即输出两个数据集均包含的记录。
● EXCEPT: 求第二个数据集在第一个数据集中的补集。即输出第一个数据集包含而第二个数据集不包含的记录。
其实这个理解有点抽象,应该理解为去掉A集合中,B也存在的元素。
● MINUS: 等同于EXCEPT。
用例:
SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE wlfl = 'Z004' EXCEPT SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE ZFL != ''
实际例子:
可以看到,物料分类关联中分类,中分类再关联物料组编码
但这个关联不是连续的。
有一些是物料分类直接对接到了物料组编码
实际用到的时候,如果用户选择了物料分类,那么就要去看中分类能否选择。
如果中分类有,选择后到物料组继续选择。
如果中分类没有,则直接到物料组选择。
解决这个中间层级有可能缺失的情况。
思路:
先:
SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE wlfl = 'Z001'
找出这个物料分类对应的物料组。
这个是一定有的。
再
SELECT wlzbm,wlzms FROM uf_SAP_wlz WHERE ZFL != '201'
找出不是中分类的集合。
最后用到补集就能找到该中分类的集合了。
这样一个好处,就是当中分类不存在集合的时候,在与物料分类做补集的时候,能完整带出物料分类对应的所有物料组编码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?