狙击手进来看一下 ,这个获取中文字符的函数

fqbnet2050 2008-04-03 10:25:58

create function get_chinese(@str varchar(50))
returns varchar(50)
as
begin

declare @flag int,@nlen int,@temp int
set @flag=1
set @temp =1
set @nlen=len(@str)
while @flag<=@nlen
begin
if ascII(substring(@str,@flag,1)) between 133 and 223
begin
set @flag=@flag+1
set @temp=@flag
end
else
begin
set @str=stuff(@str,@flag,1,'') --删除字符
set @flag=@temp
end
end

return @str
end

declare @s varchar(50)
set @s='dfdf对方78额52的548'
select dbo.get_chinese(@s)
--执行函数的时候奇慢而且没有结果,帮我看一下是什么问题,


--这个函数是从下面这段代码改过来的
declare @s varchar(100),@i int,@s2 varchar(100)
set @s='111中国aaaw的'
set @i=1

while @i<=len(@s)
begin
if ascII(substring(@s,@i,1)) between 133 and 223
set @i=@i+1
else
begin
set @s = stuff(@s,@i,1,'')
set @i = 1
end

end
select @s
--运行没有问题
--作者:狙击手,


...全文
171 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqbnet2050 2008-04-03
  • 打赏
  • 举报
回复
好了, 我结贴吧,要不成水区了
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
那我是不是已经 6分了
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
那我是不是已经 5分了
ojuju10 2008-04-03
  • 打赏
  • 举报
回复
ding
ojuju10 2008-04-03
  • 打赏
  • 举报
回复
jiefen
fqbnet2050 2008-04-03
  • 打赏
  • 举报
回复
如果中午12点,还是你一个人的话,就20分
fqbnet2050 2008-04-03
  • 打赏
  • 举报
回复
好的,结贴,不给白不给。
虽然分少一点儿,但是人好分膜嘛。
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
那我是不是已经 4分了
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
那我是不是已经 3分了
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
那我是不是已经 2分了
-狙击手- 2008-04-03
  • 打赏
  • 举报
回复
那我接分啦
嘿嘿
fqbnet2050 2008-04-03
  • 打赏
  • 举报
回复
哈哈,现丑了,贴出来看了一下就明白了。
没问题分照样给,
top 20 一人一分,我不算
fqbnet2050 2008-04-03
  • 打赏
  • 举报
回复
我知道了
@flag<=@nlen 永远成立,死循环,骇。。。。。。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧