日期:2014-05-18  浏览次数:20572 次

大家看看这个语句怎么写?
想通过语句检测law表的title中含有的关键词,keyword表的keyword字段是关键词

select   t.title   ,d.keyword
from   law     t
join   keyword   d   on   charindex(d.keyword,t.title)   > 0
上面语句实现的效果是
-----------------------------------
上海市企业职工最低工资规定 企业职工
上海市企业职工最低工资规定 工资
上海市企业职工最低工资规定 最低工资

想要实现的效果是
---------------------------------------------------
上海市企业职工最低工资规定 企业职工 工资     最低工资


------解决方案--------------------
--创建一个合并的函数
create function f_hb(@title varchar(50))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ' '
select @str = @str + ', ' + cast(keyword as varchar) from
(
select t.title ,d.keyword
from law t
join keyword d on charindex(d.keyword,t.title) > 0
) t
where title = @title
set @str = right(@str , len(@str) - 1)
return(@str)
End
go

--调用自定义函数得到结果:
select distinct title ,dbo.f_hb(title) as keyword from
(
select t.title ,d.keyword
from law t
join keyword d on charindex(d.keyword,t.title) > 0
) m