首页 > 解决方案 > SQL Server 提取匹配子字符串的单词

问题描述

我需要一个查询,它从主字符串中提取与子字符串列表匹配的单词。例如,从字符串“我需要一个不包含密码短语的密码。请帮忙。”,我需要一个查询来提取匹配“单词”和“短语”的单词。因此,目标查询的结果将是:密码、密码短语

标签: sql-server

解决方案


使用支持 REGEX 的编程语言会更好。

如果你真的必须在 SQL 中这样做,你可以这样做:

使用 CHARINDEX 查找您要匹配的第一个关键字的第一次出现。

然后使用 CHARINDEX 查找关键字前后最接近的空白字符。

然后使用 SUBSTRING 获取这两个空白字符之间的字符。

循环到第一个关键字的下一次出现,直到到达字符串的末尾。

循环到您要匹配的下一个关键字并重复上述循环。

如果要在查询中内联执行此操作,则需要将上述内容封装在 UDF 中。


推荐阅读