感谢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
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
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 但是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
本文介绍了一种使用SQL函数来计算一个字符串在另一个字符串中出现次数的方法。该方法通过两种不同的实现方式,一种是通过计算字符串长度的差值来间接获取匹配次数,另一种则是采用循环查找的方式直接计数。
出现次数&spm=1001.2101.3001.5002&articleId=2154439&d=1&t=3&u=a09c1f4a27964970a0e213d02925efaf)
1万+

被折叠的 条评论
为什么被折叠?



