sqlServer去除字段中的中文

本文介绍了一种在SQL数据库中去除字段内中文字符的方法,通过创建自定义函数实现对混合中英文字段的处理,有效筛选出仅含英文字母或数字的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候数据库表中某些字段是由中文和字母或数字组成,但有时我们又需要将字段中的中文去掉。想要实现这种需求的方法有很多,下面就是其中一种解决方法。

首先我们先建立测试数据

create table test(
id int primary key identity(1,1),
name varchar(20) not null
)

insert into test(name) values('测试2')
insert into test(name) values('测试a')
insert into test(name) values('测试')
insert into test(name) values('abc')
insert into test(name) values('123')
insert into test(name) values('abc123')

select * from test

 

结果:

创建函数:

--去除输入字符串中的中文
create function fun_del_chinese
(@col varchar(1000))
returns varchar(1000)
AS
begin
    declare @returnchar varchar(1000),@len int
    select @returnchar='',@len=1
 
    while(@len<=len(@col))
    begin
        if(ASCII(substring(@col,@len,1))<122)
        set @returnchar=@returnchar+substring(@col,@len,1)
        set @len=@len+1
    end
return @returnchar
end
go

 执行:

update test set name=t2.name
from test t1,
(select id,dbo.fun_del_chinese(name) name from test
where len(name)*2!=datalength(name)--排除全部由中文组成字段
) t2
where t1.id=t2.id

 

执行结果:

转载于:https://www.cnblogs.com/LFBlog/p/6240899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值