【项目实战】---统计逗号隔开的字符串的数量

前言:

在项目中用到了存储过程,在实现的过程中,发现存储过程对于数组是不支持的,进而通过后台传递字符串到存储过程,来达到想要的效果。对应传递来的字符串当时也理所应当的用了len函数来求它的长度,感觉还很正确,没有发现哪里不合适,真正实现的时候效果不正确,插入操作出现了多余的空行,后来调试存储过程才发现这个问题。对于将数组中原本的元素通过逗号分隔,存入字符串并不能像求数组的长度一样直接用length函数来求长度,其实是要统计字符串中逗号隔开的字符串的数量。

代码:

-- =============================================
-- Author:		<ytm>
-- Create date: <2017-11-13 10:59:26>
-- Description:	<统计逗号隔开的字符串的数量>
-- =============================================
CREATE function [dbo].[func] 
(@var varchar(500) ,@split char(1) ) //字符串,分隔符
RETURNS int 
AS  
BEGIN 
	declare @cur char(1)
	declare @i int
select @i = 0
	declare @total int
	select @total = len(@var)
	declare @num int          
select @num = 1
while @i<=@total
begin
	select @i = @i + 1
	select @cur = substring(@var,@i,1)
if @cur = @split 
select @num = @num+1
end
return @num 
END

总结:

在实现的过程中要多多思考,不要想当然,同时也要多多的分析,找出问题的原因,对症下药。

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值