[英]Extracting Keywords from a string in SQL
我想在 SQL 服務器中編寫一個 SQL 查詢,從包含字符串值的列中提取某些關鍵字。 關鍵字位於另一個表中 - (KEYWORDS)。 另外,如果在同一個字符串中找到多個關鍵字,我希望顯示所有找到的關鍵字。
雞蛋
KEYWORDS -- Tom, Doctor, coach, value
TEXT -- Hi coach, tom here
最終 O/p:
**TEXT**
Hi coach, tom here
**KEYWORDS_EXTRACTED**
coach, tom
declare @k table(thekeyword varchar(50));
insert into @k(thekeyword) values ('Tom'), ('Doctor') , ('coach'), ('value');
declare @t table(thetext varchar(1000));
insert into @t(thetext) values('Hi coach, tom here'), ('Tom visited the doctor'), ('minicoach or minibus?'), ('Tomas says hi')
select *
from @t as t
outer apply
(
select
stuff(
(select ',' + k.thekeyword
--string_agg(k.thekeyword, ',') as thekeywords
from @k as k
where ' ' + t.thetext + ' ' like '%[^A-Za-z]'+k.thekeyword+'[^A-Za-z]%' --adjust
for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as thekeywords
) as kw;
您可以使用string_split()
:
select t.*, k.keyword
from t cross apply
string_split(replace(text, ',', ' ')) s join
keywords k
on k.keyword = s.value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.