非汉字字符的替换!!

lalakid 2004-11-22 02:15:31
我做了一个函数,目的是把字符串中所有的非汉字字符全部替换为','
函数体大致如下:
DECLARE @vchItem VARCHAR(8000),
@iLength INT
SET @vchItem = 'ljlkl.,.']oiou我爱CSDN是真的.ioljolfd'
SELECT @iLength = LEN(@vchItem)
WHILE @iLength >= 1
BEGIN
IF SUBSTRING(@vchItem,@iLength,1) NOT IN (SELECT item from 汉字表)
SET @vchItem = REPLACE(@vchItem,SUBSTRING(@vchItem,@iLength,1),',')
SET @iLength = @iLength - 1
END
/*汉字表是我把SQLSERVER 2000的所有汉字放到了一个表里,我觉得这样检索的时候还能够
快一点,我认为SQLSERVER 2000的汉字共20902个,NCHAR值从19968开始*/
我发现这样做有点慢,请大家帮忙啊,谢谢!!
分数不够可以再加,哈哈!!
...全文
215 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lalakid 2004-11-22
  • 打赏
  • 举报
回复
收到,好使,谢谢^
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
学习
pbsql 2004-11-22
  • 打赏
  • 举报
回复
DECLARE @vchItem VARCHAR(8000),
@s NVARCHAR(4000)
SET @vchItem = 'ljlkl.,.]oiou我爱CSDN是真的.ioljolfd'
SET @s=''
WHILE @vchItem<>''
BEGIN
SELECT @s=@s+left(@vchItem,1)
WHERE unicode(left(@vchItem,1)) between 19968 and 40870--汉字
SET @vchItem=right(@vchItem,len(@vchItem)-1)
END
lsxaa 2004-11-22
  • 打赏
  • 举报
回复
between 19968 and 40870

34,575

社区成员

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

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