SQL 解析文本主体以从列表中提取字符串的查询

SQL query for parsing a body of text to extract a string from a list

我需要有关 SQL 查询的帮助以执行以下操作:

我有一个 table,其中包含产品可能的字符串值列表。

我有第二个 table,其中可能会提到该产品的自由格式文本。如果 SQL 查询存在于第一个 table 中,有什么方法可以提取该字符串?

我在另一个 SO post 上读到了关于 CHARINDEX 和 SUBSTRING 的内容。在这种情况下这会有效吗?我如何在我的用例中应用它?

我的场景示例如下:

我的 table,PRODUCTS,具有以下格式,

Product
 XXX
 YYY
 ZZZ
 DDD

另一个 table 有一个列,其中有大量文本将提及此产品。喜欢:

Record Number    User Review

      1           I like XXX for its versatility but YYY is better. 
      2           XXX is a horrible product. DO not buy.
      3           YYY and DDD are best in class. Many do not know how to use it.

现在我想以这种方式使用查询来提取产品名称。

Record Number    Product in Review
      1                XXX
      1                YYY
      2                XXX
      3                YYY
      3                DDD 

提前感谢您的宝贵时间和帮助。

这应该可以,但在大表上会很慢:

Select p.id, f.id, p.name from product
Inner Join freeform f on f.text like '%'+p.name+'%'