asp.net计算一串数字中每个数字出现的次数
接下来拆分这一串字符串,每个字符插入一个表变量中,最后使用分组依据进行分组。复制代码代码如下: calnumofchinstr SET ANSI _ NULLS ON GO SET QUOTED _ IDENTIFIER ON GO-===============================================================-作者: Insus。NET-创建日期: 2012-02-23-描述:计算字符串中的字符数-=============================================[calnumofchinstr](@ Value NVARCHAR(MAX))AS BEGIN DECLARE @ dum TABLE([Str]NVARCHAR(2))DECLARE @ I INT=LEN(@ Value),@ J INT=LEN(@ Value)WHILE @ I 0 BEGIN-以下函数可参考:http://www .cn博客。com/insus/archive/2011/06/25/2090231。html中频[dbo].[IsInteger] (SUBSTRING(@Value,@I,1))=0 BEGIN RAISERROR('传入字符串包含其它字符,不完全是数字,16,1)RETURN END SET @ I=@ I-1 END WHILE @J 0 BEGIN INSERT in @ dum VALUES(SUBSTRING(@ Value,@ J,1)) SET @J=@J - 1 END SELECT [Str],COUNT([Str])AS[Num]FROM @ dum GROUP BY[Str]END demo :复制代码代码如下: EXECUTE [dbo].' 5487554127489423454 '结果
以下文字更新于2012-02-24 09:40 分析以上的存储过程,考虑到性能问题,它在判断是否包含有其它字符时,循环一次字符串,然后又循环一次将每一个字符插入表变量中。以下修改正此点只做循环一次。复制代码代码如下: calnumofchinstr SET ANSI _ NULLS ON GO SET QUOTED _ IDENTIFIER ON GO-==========================================================-作者: Insus。NET-创建日期: 2012-02-23 -更新日期: 2012-02-24 -描述3:计算字符串中的字符数-==============================================[calnumofchinstr](@ Value NVARCHAR(MAX))AS BEGIN DECLARE @ dum TABLE([Str]NVARCHAR(2))DECLARE @I INT=LEN(@ Value)WHILE @ I 0 BEGIN INSERT in @ dum VALUES(SUBSTRING(@ Value,@ I,1)) SET @I=@I - 1 END -以下函数可参考:http://www .cn博客。com/insus/archive/2011/06/25/2090231。html IF EXISTS(选择TOP 1 1 FROM @ dum WHERE[dbo]).[IsInteger]([Str])=0)BEgin RAISERROR('传入字符串包含其它字符,不完全是数字',16,1)返回结束选择[字符串],计数([字符串])为[数字]从@dum组按[字符串]结束以下内容于2012-04-29 10:44分添加:如果想参考C#版本//www .JB 51。net/article/30211。html文件的后缀
版权声明:asp.net计算一串数字中每个数字出现的次数是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。