oracle - 与最接近的匹配交叉应用
问题描述
我需要一个一个地匹配几个属性。我希望避免使用多个选择语句。下面是示例。
Table1
Col1|Price|Brand|size|Color
-----------------------
A|10$|BRAND1|10|Red
B|25$|BRAND1|20|Red
C|30$|BRAND1|15|Red
D|40$|BRAND2|25|Blue
E|40$|BRAND2|30|Blue
F|35$|BRAND3|31|Blue
Table2
Col1|Col2|Col3
--------------
B|XYZ|PQR
F|ZZZ|YYY
Table3
Col1|COL2|COL3|LIKECOL1|ClosestPrice|brand|size|Color
------------------------------------------------
B|XYZ|PQR|C|25|BRAND1|15|Red
F|ZZZ|YYY|E|40|NULL|NULL|Blue
在表 3 中,我需要通过检查以下条件从表 2 中插入数据。
如果 Brand 和 Color 匹配并且 size 和 Price 最接近匹配,则在 table2 中查找匹配记录。如果未找到匹配项,则仅尝试颜色(精确匹配)、尺寸和价格最接近匹配 如果仍然没有找到匹配项,请尝试颜色精确匹配和价格最接近匹配。
在上面的示例中,对于 table2 中的第一条记录“B”,发现匹配为 C,因此插入到 table3 和第二条记录 F,记录“E”匹配但只有颜色和完全匹配。
根据以前的一些帖子,我可以使用交叉应用并获取包含精确匹配的条件,但是任何人都可以帮助我在其中包含最接近的匹配逻辑吗?
解决方案
推荐阅读
- c++ - 按升序对类数组进行排序
- python - Python Django 多行表单
- jquery - 为什么我的点击事件只发生一次?
- python - 在另一个数组中查找数组的字符串元素
- python - 如何在不提取所有内容的情况下访问 gzip 压缩文件夹的子文件夹中的文件?
- node.js - 使用 react-admin 更新项目时遇到问题
零件 - r - rvest::submit_form() 中的错误 - 'externalptr' 类型的对象不是子集
- uncrustify - 可以将 Uncrustify 配置为对齐头文件中的单行函数中的大括号吗?
- reactjs - 使用material-ui断点创建响应式背景视频不起作用
- react-native - Geolocation API 函数 reverseGeocodeAsync() 的参数如何格式化?