很多時候數據庫表中某些字段是由中文和字母或數字組成,但有時我們又需要將字段中的中文去掉。想要實現這種需求的方法有很多,下面就是其中一種解決方法。
首先我們先建立測試數據
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
執行結果: