sql 语句 急!!!! 数据将英文和数字去掉,只保留汉字的sql语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句 急!!!! 数据将英文和数字去掉,只保留汉字的sql语句相关的知识,希望对你有一定的参考价值。

表 companyinfo 只要修改companyname字段。如:‘companyname=15无ab_de’, 将字母 数字 符号去掉

1、创建测试表,

create table test_replace_str(value varchar2(200));


2、插入测试数据;

insert into test_replace_str values('abc12历史');

insert into test_replace_str values('ABC3试试dc');

insert into test_replace_str values('ZZZ11100');

commit;

3、查询表中全量数据;select t.*, rowid from test_replace_str t;

4、编写语句,将英文和数字去掉,只保留汉字;

select t.*, regexp_replace(value, '[a-zA-Z0-9]', '') sec

  from test_replace_str t;

参考技术A update 表名 字段名=replace(字段名,'a','')
update 表名 字段名=replace(字段名,'b','')
update 表名 字段名=replace(字段名,'c','')
update 表名 字段名=replace(字段名,'d','')
update 表名 字段名=replace(字段名,'e','')
update 表名 字段名=replace(字段名,'f','')
update 表名 字段名=replace(字段名,'g','')
update 表名 字段名=replace(字段名,'h','')
update 表名 字段名=replace(字段名,'i','')
update 表名 字段名=replace(字段名,'j','')
update 表名 字段名=replace(字段名,'k','')
update 表名 字段名=replace(字段名,'l','')
update 表名 字段名=replace(字段名,'m','')
update 表名 字段名=replace(字段名,'n','')
update 表名 字段名=replace(字段名,'o','')
update 表名 字段名=replace(字段名,'p','')
update 表名 字段名=replace(字段名,'q','')
update 表名 字段名=replace(字段名,'r','')
update 表名 字段名=replace(字段名,'s','')
update 表名 字段名=replace(字段名,'t','')
update 表名 字段名=replace(字段名,'u','')
update 表名 字段名=replace(字段名,'v','')
update 表名 字段名=replace(字段名,'w','')
update 表名 字段名=replace(字段名,'x','')
update 表名 字段名=replace(字段名,'y','')
update 表名 字段名=replace(字段名,'z','')
update 表名 字段名=replace(字段名,'0','')
update 表名 字段名=replace(字段名,'1','')
update 表名 字段名=replace(字段名,'2','')
update 表名 字段名=replace(字段名,'3','')
update 表名 字段名=replace(字段名,'4','')
update 表名 字段名=replace(字段名,'5','')
update 表名 字段名=replace(字段名,'6','')
update 表名 字段名=replace(字段名,'7','')
update 表名 字段名=replace(字段名,'8','')
update 表名 字段名=replace(字段名,'9','')
参考技术B MS Sql Server? 写一个自定义函数利用循环来处理字符串里的每个字符, 将Ascii码在数字和字母范围内的都不处理, 最后结果返回回来, 然后写SQL时使用这个函数就行了, 下面这个没有去掉符号, 因为时间比较紧, 你自己改一下吧

create function CharRep(@s nvarchar(200)) returns nvarchar(200) as
begin
declare @i int, @a nvarchar(1), @s1 nvarchar(200)
set @i = 1
set @s1 = ''
while @i <= len(@s)
begin
set @a = substring(@s, @i, 1)
if not (@a >= 'a' and @a <= 'z' or @a >= 'A' and @a <= 'Z'or @a >= '0' and @a <='9')
set @s1 = @s1 + @a
set @i = @i + 1
end
return @s1
end

GO

select dbo.charrep('hasdjfhaksdhf443758吉朝觐困4u3895晨地sadj0')本回答被提问者采纳
参考技术C Oracle下
select regexp_replace('abc123撒地方说道abc123撒地方说道-','[a-z]|[A-Z]|[0-9]','') from dual
union all
select regexp_replace('companyname=15无ab_de','[a-z]|[A-Z]|[0-9]|[[:punct:]]','') from dual
看你的需要选择
sql server下,建议参考如下资料:
http://msdn.microsoft.com/zh-cn/magazine/cc163473.aspx
参考技术D 用正则表达式替换追问

能不能麻烦示范下 3克油啦

追答

不好意思,看错,用sql语句不会

以上是关于sql 语句 急!!!! 数据将英文和数字去掉,只保留汉字的sql语句的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中怎样将字符类型转换成数字类型

急!关于用SQL语句表达数据库查询

sql语句如何去掉一段特别长的文字最后一个字符?

急!将mysql中日期转化为时间戳

sql IN 字符串查询 急

mysql数据库,根据id取每个id相对应钱数第二多的项目?问大神怎么写sql语句,要简单易懂的。谢谢。急