【叶子函数分享三十七】求字符串中汉字的个数
2008-06-30 11:20
281 查看
一、分解字符串法
首先创建这个函数:
/*将字符串分解*/
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 原创作品,转贴请注明作者和出处,留此信息。
首先创建这个函数:
/*将字符串分解*/
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 原创作品,转贴请注明作者和出处,留此信息。
相关文章推荐
- 【叶子函数分享二十五】从第一个汉字开始分割字符串
- 【叶子函数分享六】求两个字符串中相同的汉字及字母的个数
- 【叶子函数分享六】求两个字符串中相同的汉字及字母的个数
- 【叶子函数分享八】取出字符串中的汉字、字母或是数字
- 【叶子函数分享二十五】从第一个汉字开始分割字符串
- 【叶子函数分享八】取出字符串中的汉字、字母或是数字
- 【叶子函数分享三十六】SQL2000/2005字符串拆分为列表通用函数
- 【叶子函数分享一】去除字符串中的html标记及标记中的内容
- 【叶子函数分享九】根据字符分割字符串的三种写法
- 【叶子函数分享九】根据字符分割字符串的三种写法
- 【叶子函数分享五十四】汉字转拼音函数
- 【叶子函数分享二】去除字符串中连续的分割符
- 【叶子函数分享十九】向左填充指定字符串
- 【叶子函数分享一】去除字符串中的html标记及标记中的内容
- 【叶子函数分享二十六】过滤掉字符串中重复的字符
- 【叶子函数分享五十四】汉字转拼音函数
- 【叶子函数分享三】求第一个字符串中第二个串的个数
- 【叶子函数分享十一】取汉字首字母的两个函数
- 【叶子函数分享二十】将整型数字转换为大写汉字
- 【叶子函数分享二】去除字符串中连续的分割符