是这样的,我用的全文搜索(其实这个与问题无关了)我是搜索新闻的内容,比较我键入一个关键字,我想得到这个关键前后60个的内容(说白了,就是和百度一样)。就是说搜索出来以后,我不可以把整个内容都显示出来,我最多把那个关键字前后的内容给显示出来,请问这个怎么做?
是在程序里面写还是SQL就可以做到,谢谢!

解决方案 »

  1.   

    貌似在SQL里面可以做到,,,
      

  2.   

    例如关键字为一变量declare @keywords as varchar(10)
    set @keywords = '关键字'select 关键字前60个字 = case when charindex(@keywords , col) > 60 then substring(col , charindex(@keywords , col) - 60 , charindex(@keywords , col)) else left(col , charindex(@keywords , col)) end,
           关键字后60个字 = substring(col , charindex(@keywords , col) , 60)
    from tb
      

  3.   


    前60个字:SUBSTRING (你的字段,PATINDEX ('%你的关键字%')-60, 60) 
    后60个字:SUBSTRING (你的字段,PATINDEX ('%你的关键字%')+60, 60)