我的数据库中有两个表,第一个包含几个句子,例如“我喜欢苹果和香蕉”,第二个包含关键字,例如“苹果”和“橙色”。我想创建一个 sql 语句或 usp 来列出第一个表中的所有列以及第二个表中的关键字。如何在不使用游标的情况下实现这一点?
除了 while 循环之外,还有人有一些聪明的想法吗?那太好了。
谢谢, 玲
最佳答案
看看这是不是你需要的...
选项 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
关于sql - 如何避免sql server中的游标?也想避免 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3078455/