【叶子函数分享三十七】求字符串中汉字的个数

一、分解字符串法

首先创建这个函数:

 

/*将字符串分解*/

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://blog.csdn.net/maco_wang 原创作品,转贴请注明作者和出处,留此信息。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值