sql - 在字段中遇到特殊字符(例如“/”)时创建新行
问题描述
每当我在特定字段中遇到斜线时,我都会尝试复制记录。
问题的背景:我正在尝试比较两个包含项目编号、项目描述和项目序列号的数据列表。一个列表有项目数量和状态信息,另一个列表有项目位置信息,所以我试图将位置列表与主列表匹配。问题是这两个列表都是彼此独立创建的,所以它们都有错误,我只能在 SQL 中进行大约 20% 的内部连接。其余的不匹配,因为一个列表中的项目编号错误,一个列表中的序列号可能缺少一位数字,我也无法很好地比较命名法,因为有人可能会说“手动扳手”,另一个可能会说“扳手,5 毫米,套筒”。
此外,一个数据列表有多个项目,与某个主要项目相关,保存在每个记录中。他们通过在序列号字段中存储由斜线分隔的多个序列号来做到这一点。
尝试在 Alteryx 中使用 Levenshtein 差异(模糊匹配)进行序列号/项目编号匹配。这造成了太多误报,因为序列号是连续的,项目编号经常不正确,项目描述可能看起来与人类相似,但字符长度可能大不相同(例如,如果其他列表有类似“卡车,8 轮,货物,平板”)。
如果一个列表中的序列号包含在另一个列表中(序列号字段中有多个序列号),我目前正在尝试仅匹配列表。
我目前正在使用的示例 SQLite 代码
select * from [MISSING ITEMS LIST] as a
left join [RFID TAG SCAN] as b on
b.[SERIAL NUMBER] like '%' || (a.[SERIAL NUMBER] || '%')
where b.[SERIAL NUMBER] <> '' and b.[SERIAL NUMBER] is not null
我想要达到的目标:
从上面重新复制这部分:所以表 A 可能有这个:
Record# Item# Description SN
1, 156928, Truck, 1234
2, 209344, Truck Cover, 5588
表 B 可能有这个
Record# Item# Description SN
1, 156928, Truck, 5588/01234
为了使分析更容易一些,我想将表 B 转换为:
Record# Item# Description SN
1, 156928, Truck, 5588
1, 156928, Truck, 01234
解决方案
推荐阅读
- visual-studio - 如何在 Visual Studio 2019 中删除给定组合键的现有快捷方式?
- javascript - d3.js 中每一层都有多个元素的金字塔
- python - 如何按行对二维数组进行排序并将索引存储在新的二维数组中
- ruby - Capybara 无故运行脚本两次
- java - 有没有办法在 @MethodSource 内部知道它为哪个测试方法提供数据?
- java - 在 Windows10 环境(Selenium/Java)中使用 RemoteWebDriver 和 Internet Explorer 11 时 HTML 无效
- python - 从 fetchone sqlalchemy 查询结果中取出一个值
- jquery - 如何使用 AJAX 访问 laravel 雄辩的关系数据?
- java - 来自/到 Apache Kafka 的 Apache Camel 路由中断异常
- mysql - MySQL Workbench中两行之间的差异,但未授权LAG