求第一個(gè)字符串中第二個(gè)串的個(gè)數(shù) 分類: SQL函數(shù)分享系列
--創(chuàng)建函數(shù) create function [dbo].[m_count] ( @str_one nvarchar(200), --第一個(gè)字符串 @str_two nvarchar(200) --第二個(gè)字符串 ) returns int as begin declare @sqlcount int select @sqlcount=(len(@str_one)-len(replace(@str_one,@str_two,'')))/len(@str_two) return @sqlcount end
--測試示例 select dbo.m_count('sqlserver','e') as [count]
--運(yùn)行結(jié)果 /* count ----------- 2 */ 綜合模糊查詢 --創(chuàng)建函數(shù) create function [dbo].[m_fuzzyquery_v1] ( @str nvarchar(2000) ) returns nvarchar(2000) as begin declare @count int,@i int; declare @newchar nvarchar(200),@nn nvarchar(300),@hh nvarchar(200) set @count=len(@str);set @i=1;set @nn=''; while @i<@count+1 begin set @newchar=substring(@str,@i,1)+'%' set @nn=@nn+@newchar; set @i=@i+1; end set @hh='%'+@nn return @hh end
--測試數(shù)據(jù) declare @table table (connect varchar(30)) insert into @table select '我愛程序' union all select '我的程序生活' union all select '絕對無聊的生活' union all select '活得好累' union all select '程序員的生活' union all select '序論' union all select '生機(jī)' union all select '生活雜志' union all select '我只是隨便寫寫' union all select '真的是要來搜索的' union all select '程序員一生的活路'
--普通的模糊查詢 select * from @table where connect like '%程序生活%' --運(yùn)行結(jié)果 /* connect ------------------------------ 我的程序生活 */
--應(yīng)用函數(shù)查詢 select * from @table where connect like ( select dbo.[m_fuzzyquery_v1]('程序生活')) --運(yùn)行結(jié)果 /* connect ------------------------------ 我的程序生活 程序員的生活 程序員一生的活路 */ |
|