sqlServer去除字段中的中文
Posted littleFatty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlServer去除字段中的中文相关的知识,希望对你有一定的参考价值。
很多时候数据库表中某些字段是由中文和字母或数字组成,但有时我们又需要将字段中的中文去掉。想要实现这种需求的方法有很多,下面就是其中一种解决方法。
首先我们先建立测试数据
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
执行结果:
以上是关于sqlServer去除字段中的中文的主要内容,如果未能解决你的问题,请参考以下文章
如何去除SqlServer的自增字段 不用identity_insert和创建新列 还有别的方法么? 这个列里有数据,不能动