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

发布网友 发布时间:2022-04-23 09:10

我来回答

6个回答

热心网友 时间:2022-04-08 22:43

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;

热心网友 时间:2022-04-09 00:01

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','')

热心网友 时间:2022-04-09 01:35

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吉朝觐困4u35晨地sadj0')

热心网友 时间:2022-04-09 03:27

Oracle下
select regexp_replace('abc123撒地方说道abc123撒地方说道-','[a-z]|[A-Z]|[0-9]','') from al
union all
select regexp_replace('companyname=15无ab_de','[a-z]|[A-Z]|[0-9]|[[:punct:]]','') from al
看你的需要选择
sql server下,建议参考如下资料:
http://msdn.microsoft.com/zh-cn/magazine/cc163473.aspx

热心网友 时间:2022-04-09 05:35

用正则表达式替换追问能不能麻烦示范下 3克油啦

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

热心网友 时间:2022-04-09 07:59

有手没有?手动去吧.不要急.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com