科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在SQL Server2000中处理半个汉字的问题(2)

在SQL Server2000中处理半个汉字的问题(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于从其它数据库中导入的数据存在半个汉字的问题,所以希望能在查询语句中将这半个汉字处理掉,请问怎样才能解决这个问题?

作者:yangguo 来源:赛迪网 2007年8月25日

关键字: 半个汉字 SQL Server SQL Server 2000 数据库

  • 评论
  • 分享微博
  • 分享邮件

再明确了上面的技术细节后,接下来就可以解决问题了。我通过编写一个函数来解决问题。

create function fn_TruncSemiHanzi
(@str varchar(4000))

returns  varchar(8000)

as

begin

declare

@sTmp varchar(8000),@i int,
@itmp int,@itmp2 int ,@stmp2 varchar(2) 

select @sTmp='

  select @i=1

  while @i<=len(@str)

  begin

     select @itmp=convert(int,substring
(convert(varbinary,substring(@str ,@i,1)),1,1))
 --截取一个字节

    if @itmp>127  

    begin

      --大于127检查后面一个字节

select @itmp2=convert(int,substring
(convert(varbinary,substring(@str ,@i,1)),2,1))

       if @itmp2>127 

      begin

        select @stmp2=char(@itmp)+char(@itmp2)  
 --是一个完整的汉字 

     end 

     else

     begin

        select @stmp2=char(@itmp2)   --丢弃半个汉字

    end

  end

  else

  begin

      select @sTmp2=char(@itmp)

  end 

   select @sTmp=@sTmp+@stmp2 

   select @i=@i+1

  end

   return @stmp

end
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章