sql简单问题

qozm 2003-09-29 05:47:49
sql里面要 查找一个字符在另外一个字符串里面有多少个用什么函数?

比如
str1="a"
str2="abcabcdabcde"
我要得出str2中有多少个 "a"
用什么函数?
...全文
22 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DigJim 2003-09-29
  • 打赏
  • 举报
回复
aierong(皑婀瑢-数据库XML.NET联盟会处长) 的方法最好
gmlxf 2003-09-29
  • 打赏
  • 举报
回复
--自己建立个函数
create function getsl(@str2 varchar(100),@str1 varchar(100))
returns int
as
begin
declare @TempStr varchar(100)
set @tempStr=replace(@str2,@str1,'')
return (len(@str2)-len(@tempStr))/len(@str1)
end

--测试调用函数
select dbo.getsl('abacdabef','ab') --结果 2
select dbo.getsl('abacdabef','baba') --结果 0
aierong 2003-09-29
  • 打赏
  • 举报
回复

declare @str1 varchar(100),@str2 varchar(100),@n int
select @str1='aa'
select @str2='aabcaabcdaabcde'
select (len(@str2)-len(replace(@str2,@str1,'')))/len(@str1) as 个数
aierong 2003-09-29
  • 打赏
  • 举报
回复
declare @str1 varchar(100),@str2 varchar(100),@n int
select @str1='a'
select @str2='abcabcdabcde'
select @n=0
while charindex(@str1,@str2)<>0
begin
select @str2=stuff(@str2,CHARINDEX(@str1,@str2),len(@str1),'')
select @n=@n+1
end
print convert(char(10),@n)
yujohny 2003-09-29
  • 打赏
  • 举报
回复
--自己建立个函数
create function getsl(@str2 nvarchar(50),@str1 nvarchar(1))
returns int
as
begin
declare @TempStr nvarchar(50)
set @tempStr=replace(@str2,@str1,'')
return len(@str2)-len(@tempStr)
end

--测试调用函数
select dbo.getsl('abacdaef','a') --结果 3
select dbo.getsl('abacdaef','b') --结果 1
sdhdy 2003-09-29
  • 打赏
  • 举报
回复
declare @str varchar(200)
set @str='abcabcdabcde'
select len(@str)-len(replace(@str,'a','')) as 个数

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧