日期:2014-05-18  浏览次数:20510 次

请教:如何从数据库中查找字段中含有汉字的行!
我想找出url字段中的含有汉字的行,把中文字替换掉,可是这个到底要怎么做呀?

------解决方案--------------------
--創建環境
SELECT *,
判斷結果=CASE
WHEN PATINDEX( '%[阿-座]% ', re) = 0 OR PATINDEX( '%[A-Z]% ', re) = 0
THEN N '不满足条件 '
ELSE N '满足条件 ' END
FROM(
SELECT re = 'Mike 啊 Chou ' UNION ALL
SELECT re = 'Mike Chou ' UNION ALL
SELECT re = '阿 阿 ' UNION ALL
SELECT re = '满足条件? ' UNION ALL
SELECT re = '测试d '
) AS A

--result
re 判斷結果
------------ ------------------------
Mike 啊 Chou 满足条件
Mike Chou 不满足条件
阿 阿 不满足条件
满足条件? 不满足条件
测试d 满足条件

(5 row(s) affected)

------解决方案--------------------
楼上的条件有误,中文字库的第一个字和最后一个字为(吖—座),包含所有的中文库
create function roy_f(@name varchar(1000))
returns varchar(1000)
as
begin
while patindex( '%[吖-座]% ',@name)> 0
set @name=stuff(@name,patindex( '%[吖-座]% ',@name),1, 'AAA ')
return @name
end


declare @a varchar(200)
set @a= '中国工啊喔1234564awerfczscdsWEEWR '

select dbo.roy_f(@a)
结果如下:
AAAAAAAAAAAAAAA1234564awerfczscdsWEEWR

(所影响的行数为 1 行)

用函数更新就行了:
update 表名
set a列=dbo.roy_f(a列)


------解决方案--------------------
以上的把一个中文字替换为 'AAA '
如果是去掉:
把 'AAA '改为 ' '