SQL语句是否可以将其与基于相同列表/列中的每个单词相近或匹配的添加的uggested_phrase列进行分组?
目标:1.根据匹配的关键字自动建议短语。2.每个词组词的100%匹配或存在于建议词组中3.忽略非字母数字字符(仅在可能的情况下,不是必需的)
Table_1 list
row_id | Phrase_words
1 | [Humpty Dumpty sat]
2 | on a wall humpty+dumpty
3 | Humpty Dumpty sat on a wall
4 | Dumpty, Humpty, wall, sat
5 | Ben Cater
6 | Engr. Benedic
7 | Engr. Benedic Cater
8 | Engr. Cater
9 | Dr. Cater
我想看的结果
Table_1 list with suggested_phrase
row_id | Phrase_words | Suggested_Phrase
1 | [Humpty Dumpty sat] | Humpty Dumpty sat on a wall
2 | on a wall humpty dumpty | Humpty Dumpty sat on a wall
3 | Humpty Dumpty sat on a wall | Humpty Dumpty sat on a wall
4 | Dumpty, Humpty, wall, sat | Humpty Dumpty sat on a wall
5 | Ben Cater | Engr. Benedic Cater
6 | Engr. Benedic | Engr. Benedic Cater
7 | Engr. Benedic Cater | Engr. Benedic Cater
8 | Engr. Cater | Engr. Benedic Cater
9 | Dr. Cater | Dr. Cater
您可以执行此操作,并且最终会有很多CASE语句;
SELECT *,
CASE WHEN phrase_words like '%humpty%' AND phrase_words like '%dumpty%'
THEN 'Humpty Dumpty sat on a wall'
WHEN phrase_words like '%Engr. Benedic%' OR phrase_words like '%Ben Cater%' OR
phrase_words LIKE '%Engr. Cater%'
THEN 'Engr. Benedic Cater'
WHEN phrase_words like '%Dr. Cater%'
THEN 'Dr. Cater'
END Suggested_Phrase
FROM TABLE