sql - 从 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;
推荐阅读
- jenkins - hudson.remoting.ProxyException:groovy.lang.MissingPropertyException:没有这样的属性:任何类:
- python - 使用 re 替换文件中的行
- docker - 开发容器:绑定用户?
- python - pyspark中的稀疏矩阵/ CSC矩阵
- r - 为什么在 Rmd 中找不到 readr::read_csv2() 命令?
- javascript - Toggle specific element when css class is used multiple times
- mysql - MySQL | Can not set UTC_TIMESTAMP after ON UPDATE
- swift - 为什么在 SwiftUI 中的动画过程中动画不使用 View 的主体更新自身?
- python - How to count and populate values from two different dataframe columns?
- python - Pandas merge, right file has more than one instance of the same key