簡體   English   中英

從 SQL 中的字符串中提取關鍵字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM