【发布时间】:2018-03-17 15:58:30
【问题描述】:
我希望有一个大脑可以帮助一个迷失的灵魂;
我有两列; COL_A 和 COL_B,两列的每条记录都只包含一个单词(单词的长度可以变化)。
我要做的是搜索COL_A 并识别与COL_B 的部分(单词)匹配,例如COL_A = 'MSOFT'、COL_B = 'MICROSOFT',因此这将被归类为匹配。
同样,如果 COL_A = 'RANGE' 和 COL_B = 'ORANGE' 这也将被归类为匹配项。
但是,如果 COL_A = 'ORGAN' 和 COL_B = 'ORANGE' 这不会被归类为匹配项。
我愿意接受建议(纯 SQL、函数等)。
一如既往,我们将不胜感激。
非常感谢!
【问题讨论】:
-
仍然不清楚你所说的匹配是什么意思。因此,如果 col_A = 'RANGE' 和 col_B = 'ORANGE' 匹配;如果 col_A = 'ORANGE' 和 col_B = 'RANGE' 仍然匹配吗?哪个是另一个的子词有关系吗?然后:这两个词之间的区别是否必须是一个连续的子字符串(如在所有示例中一样),或者 'ALMA' 是否匹配 'KALIMERA'?
-
嗨,Mathguy,为歧义道歉; COL_A 将始终包含少于或相同数量的字符作为 COL_B。关于字符串;是的,它将是一个连续的子字符串(因此“ALMA”和“KALIMERA”不会被视为匹配。非常感谢。
-
好的,所以匹配意味着第一行是初始子字符串,最终子字符串(意味着在末尾锚定),还是初始子字符串后跟最终子字符串的连接?任何其他情况都意味着“差异”不连续。请确认。然后:有趣的问题!不确定它在现实生活中的适用性如何,但这是一个很好的挑战(非常重要,因为有多种匹配方法)。
-
确实,很有趣 - 在过去的几个小时里,我一直在脑痛。从理论上讲,它可能是两者的串联......也就是说,我相信采用最终的子字符串将是一个很好的起点。
-
所以,为了清楚起见——“误报”(在文本匹配中)有时被称为“母亲在 chemotherapy”问题(原因我强调)。但是,根据我们的规则,这不是匹配,因为差异是由两个不连贯的字符串组成的,开头是“che”,结尾是“apy”。只是确保...
标签: sql string oracle search plsql