国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net計算一串數字中每個數字出現的次數

2024-07-10 13:23:51
字體:
來源:轉載
供稿:網友
接下來拆分這一串字符串,每個字符插入一個表變量中,最后使用GROUP BY進行分組。

復制代碼 代碼如下:


CalNumOfChtInStr
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Insus.NET
-- Create date: 2012-02-23
-- Description: Calculate the number of characters in the string
-- =============================================
CREATE PROCEDURE [dbo].[CalNumOfChtInStr]
(
@Value NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @dum TABLE ([Str] NVARCHAR(2))
DECLARE @I INT = LEN(@Value),@J INT = LEN(@Value)
WHILE @I > 0
BEGIN
--以下函數可參考:
IF [dbo].[IsInteger] (SUBSTRING(@Value, @I, 1)) = 0
BEGIN
RAISERROR('傳入字符串包含其它字符,不完全是數字。',16,1)
RETURN
END
SET @I = @I - 1
END
WHILE @J > 0
BEGIN
INSERT INTO @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].[CalNumOfChtInStr] '5487554127489423454'


結果:

asp.net計算一串數字中每個數字出現的次數


以下文字更新于2012-02-24 09:40
分析以上的存儲過程,考慮到性能問題,它在判斷是否包含有其它字符時,循環一次字符串,然后又循環一次將每一個字符插入表變量中。以下修改正此點只做循環一次。

復制代碼 代碼如下:


CalNumOfChtInStr
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Insus.NET
-- Create date: 2012-02-23
-- Update date: 2012-02-24
-- Description: Calculate the number of characters in the string
-- =============================================

ALTER PROCEDURE [dbo].[CalNumOfChtInStr]
(
@Value NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @dum TABLE ([Str] NVARCHAR(2))
DECLARE @I INT = LEN(@Value)
WHILE @I > 0
BEGIN
INSERT INTO @dum VALUES(SUBSTRING(@Value, @I, 1))
SET @I = @I - 1
END

--以下函數可參考:
IF EXISTS(SELECT TOP 1 1 FROM @dum WHERE [dbo].[IsInteger]([Str]) = 0)
BEGIN
RAISERROR('傳入字符串包含其它字符,不完全是數字。',16,1)
RETURN
END
SELECT [Str],COUNT([Str]) AS [Num] FROM @dum GROUP BY [Str]
END


以下內容于2012-04-29 10:44分添加:

如果想參考C#版本

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭泽县| 多伦县| 织金县| 宣化县| 玛沁县| 徐水县| 丹江口市| 桃源县| 乾安县| 宜州市| 通海县| 萨迦县| 东乡族自治县| 务川| 乌鲁木齐县| 巢湖市| 汪清县| 文水县| 谢通门县| 耒阳市| 瑞丽市| 梅河口市| 色达县| 安达市| 武陟县| 军事| 偃师市| 两当县| 松溪县| 冕宁县| 重庆市| 那坡县| 樟树市| 陆川县| 北票市| 大邑县| 安义县| 辽宁省| 延安市| 南通市| 紫金县|