我的数据库中有两个表,第一个包含几个句子,比如'我喜欢苹果和香蕉',第二个包含关键词,比如'apple'& '橙子'。我想创建一个sql语句或usp来列出第一个表中的所有colomns以及第二个中的关键字。如何在不使用游标的情况下实现这一目标?
有人会有一些聪明的想法而不是循环吗?那太棒了。
谢谢, 灵
答案 0 :(得分:2)
看看你是否需要......
选项1将为匹配短语的每个关键字返回一行...
选项2返回短语中关键字的CSV。请注意,这使用SQL 2005相关的函数。
我为你做了一个测试案例......或许可以帮助你解释这个问题。
create table #test(id int identity(1,1), phrase varchar(1000))
create table #kenter code hereeyword(id int identity(1,1), keyword varchar(50))
insert into #test
select 'I like apples and bananas'
insert into #keyword
select 'APPLE'
UNION
select 'BANANA'
UNION
select 'RASPBERY'
select
t.*,
k.keyword
from #test t
inner join #keyword k on t.phrase like '%' + k.keyword + '%'
--OR...
select
t.*,
Keywords = (
select k.keyword + ',' as [text()]
from #keyword k
where t.phrase like '%' + k.keyword + '%'
FOR XML PATH(''))
from #test t
drop table #test
drop table #keyword