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

 

執行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM