亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

關鍵字搜索.sql

系統 1947 0

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_search]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_search]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[序數表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [序數表]
GO

--為了效率,所以要一個輔助表配合
select top 2000 id=identity(int,1,1) into 序數表
from syscolumns a,syscolumns b
alter table 序數表 add constraint pk_id_序數表 primary key(id)
GO

/*--關鍵字搜索的函數
?
?在ntext數據中,搜索以空格分隔的關鍵字
?搜索到的關鍵字如果出現了多次,則只取最早出現的一次
?搜索到的關鍵字前后保留的字符數據,根據函數中定義的總字符數/關鍵字個數決定

--鄒建 2004.11(引用請保留此信息)--*/

/*--調用示例

?select dbo.f_search('北京 公司 網站 軟件 IT WWW','北京百聯美達美數碼科技有限公司,是面向IT專業技術人員和軟件開發及應用企業,以專業社區為中心的IT專業知識傳播與服務商。公司以IT專業網站( www.CSDN.net )為中心,建立了龐大的專業用戶群, 形成了網站和期刊雜志、專業出版、電子商務、企業服務、信息服務,教育培訓等關聯業務互動的商業模式。')
--*/
create function f_search(
@keyword nvarchar(2000),
@text ntext
)returns nvarchar(4000)
as
begin
?declare @relen int
?set @relen=120?--搜索結果返回的總長度(不包含關鍵字自身長度)
??--根據這個總長度/搜索的關鍵字個數,決定關鍵字前后包含的字符數

?declare @t table(keyword nvarchar(120),skey nvarchar(120))
?declare @r nvarchar(800),@i int,@ilen int

?--分拆關鍵字列表
?insert @t select substring(@keyword,id,charindex(' ',@keyword+' ',id)-id)
??,'%'+substring(@keyword,id,charindex(' ',@keyword+' ',id)-id)+'%'
?from 序數表
?where id<=len(@keyword)+1 and charindex(' ',' '+@keyword,id)-id=0
?
?--關鍵字前后要取的字符數(如果關鍵字前后的字符數是固定的,則直接為@ilen賦值)
?select @ilen=@relen/count(*) from @t
?--如果沒有搜索的關鍵字,或者無法取得前后的值,則直接退出
?if @ilen=0 return('')

?--取關鍵字
?declare @p1 int,@plen int
?select @r='',@i=null
?select
??@p1=case
???when @i>=pos-@ilen then @i
???when pos<@ilen then 1
???else pos-@ilen end,
??@plen=case
???when @i>=pos-@ilen then @ilen+keylen-@i+pos
???when pos<@ilen then @ilen+keylen+pos
???else @ilen*2+keylen end,
??@r=@r+case
???when @i>=pos-@ilen then ''
???else '...' end
???+substring(@text,@p1,@plen),
??@i=@p1+@plen
?from(
??select top 100 keyword,pos=patindex(skey,@text),keylen=len(keyword)
??from @t
??where patindex(skey,@text)>0
??order by pos
?)a

?return(@r+'...')
end
go

關鍵字搜索.sql


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 九九视频精品在线 | 亚洲欧美日韩中文高清一 | 欧美日韩一二三区 | 四虎影院最新入口 | 一本久久a久久精品vr综合 | 国产欧美日韩中文字幕 | 高清毛片免费看 | 成人久久久观看免费毛片 | 国产成人精品综合 | 日一日操一操 | 欧美精品一区二区三区视频 | 性欧美video另类hd亚洲人 | 国产福利久久 | 91久久在线| 美女胸又大又黄www网站 | 国产呦系列免费 | 亚洲精品欧美一区二区三区 | 亚洲天天网综合自拍图片专区 | 四虎影视成人 | 欧美第一精品 | 色综合婷婷 | 国产第一福利影院 | 99在线精品免费视频九九视 | www午夜视频 | 国内精品久久久久影 | 亚洲一区二区三区影院 | 国产久7精品视频 | 久久国产成人精品国产成人亚洲 | 欧美在线一级毛片观看 | 亚洲欧美一级久久精品 | 91精品91久久久 | 成人永久福利在线观看不卡 | 欧美成人性做爰网站免费 | 欧美熟videos肥婆 | 91视频网页 | 97夜夜澡人人爽人人免费 | 欧美一区二区三区精品 | 做a小视频| 国产精品视频一区二区三区不卡 | 日本中文字幕在线精品 | 亚洲香蕉一区二区三区在线观看 |