提取汉字的函数(SQL Server)

----如果该对象已存在则先删除
if object_id('fnExtractChinese') is not null
    drop function fnExtractChinese
GO

 

----创建字符串提取函数
create function fnExtractChinese(@string varchar(100))
returns varchar(100)
as
begin
    declare @str varchar(100)
    set @str = ''
    while PATINDEX('%[吖-座]%',@String) > 0
    begin
        set @str = @str + substring(@String,PATINDEX('%[吖-座]%',@String),1)
        set @String = stuff(@String,PATINDEX('%[吖-座]%',@String),1,'')
    end
return @str
end
GO

 

----创建测试数据
declare @t table(id int,a varchar(100),b varchar(100))
insert @t
select 1,'asd你好nfa中华fa32323,','' union all
select 2,'asd成功的23sdf人哪2039askdjfal;kj;lk',''

 

----原数据
select * from @t

 

----更新
update @t set b = dbo.fnExtractChinese(a) from @t

 

----更新后数据
id    a                                      b
----------------------------------------------------------
1     asd你好nfa中华fa32323,        你好中华
2     asd成功的23sdf人哪2039askdjfal;kj;lk   成功的人哪
*/

 

----清除测试环境
drop function fnExtractChinese

 

说明,以上代码来源于csdn一帖子,由于是很久以前的事情了,所以无法查证其作者……

你可能感兴趣的:(SQL Server)