2
我在我的數據庫中有兩個表,第一個包含幾個句子,如'我喜歡蘋果和香蕉',第二個包含關鍵詞,如'apple'&'orange'。我想創建一個sql語句或usp來列出第一個表中的所有列表和第二個列表中的關鍵字。如何在不使用遊標的情況下實現這一目標?如何避免sql server中的遊標?也想避免while循環
會有人有一些聰明的想法,而不是while循環?那會很棒。
感謝, 靈
我在我的數據庫中有兩個表,第一個包含幾個句子,如'我喜歡蘋果和香蕉',第二個包含關鍵詞,如'apple'&'orange'。我想創建一個sql語句或usp來列出第一個表中的所有列表和第二個列表中的關鍵字。如何在不使用遊標的情況下實現這一目標?如何避免sql server中的遊標?也想避免while循環
會有人有一些聰明的想法,而不是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