您当前的位置: 首页 >  sql

[MSSQL]求字符串中汉字的个数

发布时间:2012-02-14 08:03:28 ,浏览量: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'

--此例说明此方法不受数据类型限制

*/
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    106350博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0463s