返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配

Posted

技术标签:

【中文标题】返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配【英文标题】:Returning all rows of a query where the string values in one column match the string values in another column 【发布时间】:2019-01-31 00:43:00 【问题描述】:

我一直在无休止地寻找这个问题的答案:

我们的团队使用的查询返回包含 13 列的数据集。我们希望通过仅返回“Actual Collection”列中的任何字符串值在相邻列“PrvPrComments”中的行来缩小结果范围。此外,我们希望对“实际制造商”和“PrvPrComments”列执行相同的操作。如果实际集合或实际制造商中的字符串值存在于 PrvPrComments 中,则我们希望返回该行,如果不存在则排除它。

棘手的部分是 PrvPrComments 是一个包含长文本字符串的列,因此查询需要解析以查找和匹配字符串。它们还需要完全匹配,这样“Pillow Perfect”和“pillow”就不是同一个东西了。

这是下面发布的示例。我想返回包含“cowboy”和“chandelier”的行,因为有匹配但没有其他匹配:

Example of data

我最初的猜测是编写一个使用全文索引和/或包含的查询。任何帮助将不胜感激,我很抱歉没有在这里发布基础代码,我对此很陌生,并且在从哪里开始时遇到了麻烦。

谢谢

【问题讨论】:

【参考方案1】:
where '%' + actualCollection + '%' like PrvPrComments

【讨论】:

这被标记为低质量。请使用 cmets 对其进行编辑以改进答案。【参考方案2】:

如果数据不多,可以使用(like表达式)返回数据, WHERE PrvPrComments LIKE '%' + actualCollection + '%'

但是如果数据很大并且全文搜索不会那么有用,您可能会有另一列作为标志并在 INSERTION 时填充相同的列,(当 actualCollection 是 LIKE PrvPrComments 然后将该标志设置为 1 ) .稍后您需要查询标记为 1 的行

【讨论】:

以上是关于返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配的主要内容,如果未能解决你的问题,请参考以下文章

仅返回一列中的日期与另一列中的日期最接近的行?

返回与另一列中的最小值匹配的 ID 行 [重复]

有没有办法将数据帧的一列中的所有行与另一个数据帧的另一列(火花)中的所有行进行比较?

返回值的公式,其中一列中的第一个单词与另一列的最后四位匹配

将一列中的文本与另一列匹配(vlookup + like)

如果一个列值仅与另一列中的一个值相关联,则过滤掉行