首页 > 其他 > 详细

求字符串中汉字的个数

时间:2017-01-03 15:05:41      阅读:156      评论:0      收藏:0      [点我收藏+]

一、分解字符串法

 

首先创建这个函数:

 

 

/*将字符串分解*/

create function [dbo].[SplitChar]

   (

   @str_One Nvarchar(100)

   )

returns @Result table (col nvarchar(1))

AS

BEGIN

   declare @number_One int

   select @number_One=1

   while @number_One<=len(@str_One)

   begin

       insert @Result select substring(@str_One,@number_One,1)

       select @number_One=@number_One+1

   end

   return

END

 

 

 

然后创建如下函数

/*求字符串中汉字个数*/

Create function [dbo].[ChineseCountOne]

(

       @Str_One nvarchar(200)

)

RETURNS int AS

BEGIN

       declare @number_One int

       SELECT @number_One =count(*) from dbo.SplitChar(@Str_One) where ascii(col)>127

       return @number_One

END

 

/*使用示例

select dbo.[ChineseCountOne] (‘China中国Beijing北京Olympics奥林匹克‘)

*/

 

二、字符字节求差法

首先创建这个函数:

create function [dbo].[Chinesecount_Two]

(

       @Str_One varchar(200)

)

RETURNS int AS

BEGIN

       declare @number_One int

       set  @number_One=(datalength(@Str_One)-len(@Str_One))

       return @number_One

END

 

/*使用示例

DECLARE @sql_one varchar(200)

SET @sql_one=‘China中国Beijing北京Olympics奥林匹克‘

 

DECLARE @sql_two nvarchar(200)

SET @sql_two=‘China中国Beijing北京Olympics奥林匹克‘  

 

select dbo.[Chinesecount_Two] (@sql_one) ‘个数one‘ ,

dbo.[Chinesecount_Two] (@sql_two) ‘个数two‘

求字符串中汉字的个数

原文:http://www.cnblogs.com/accumulater/p/6244667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!