感谢ljmiis的评论,才有了这个方法:
Create
function
angel
( @variable varchar ( max ), -- 要寻找的字符
@char varchar ( max )) -- 目标字符串
returns int
begin
declare @index int
set @index = ( len ( @variable ) - len ( replace ( @variable , @char , '' ))) / len ( @char )
return @index
end
( @variable varchar ( max ), -- 要寻找的字符
@char varchar ( max )) -- 目标字符串
returns int
begin
declare @index int
set @index = ( len ( @variable ) - len ( replace ( @variable , @char , '' ))) / len ( @char )
return @index
end
但是ljmiis的也有不全面的地方:
1、datalength表示的是字符的长度,向中文的长度就是两个。这样结果就是错的;
2、可能我标题没取好,原函数还可以判断字符串出现次数。
原始方法
Create
function
angel
( @variable varchar ( max ), -- 要寻找的字符
@char varchar ( max )) -- 目标字符串
returns int
begin
declare @index int
set @index = 0
while ( select charindex ( @variable , @char )) > 0
begin
set @index = @index + 1
set @char = stuff ( @char ,( charindex ( @variable , @char )), 1 , ' 0 ' )
end
return @index
end
( @variable varchar ( max ), -- 要寻找的字符
@char varchar ( max )) -- 目标字符串
returns int
begin
declare @index int
set @index = 0
while ( select charindex ( @variable , @char )) > 0
begin
set @index = @index + 1
set @char = stuff ( @char ,( charindex ( @variable , @char )), 1 , ' 0 ' )
end
return @index
end