转载

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

 
一、分解字符串法
首先创建这个函数:
/*将字符串分解*/

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'

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

*/

文章最后发布于: 2012-02-14 08:03:28
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览