SqlServer数据库全角转半角

来源:互联网 发布:数学分析 知乎 编辑:程序博客网 时间:2024/05/23 00:00


CREATE   FUNCTION   f_Convert(
@str   VARCHAR(max),   --要转换的字符串
@flag   bit                             --转换标志,0转换成半角,1转换成全角
)RETURNS   varchar(max)
AS
BEGIN
DECLARE   @pat   nvarchar(8),@step   int,@i   int,@spc   int


IF   @flag=0
begin
SELECT   @pat=N'%[!-~]%',@step=-65248,
@str=REPLACE(@str,N'  ',N'   ')
end
ELSE
begin
SELECT   @pat=N'%[!-~]%',@step=65248,
@str=REPLACE(@str,N'   ',N'  ')
end

SET   @i=PATINDEX(@pat   COLLATE   LATIN1_GENERAL_BIN,@str)


WHILE   @i> 0
begin
SELECT   @str=REPLACE(@str,SUBSTRING(@str,@i,1),NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
select   @i=PATINDEX(@pat   COLLATE   LATIN1_GENERAL_BIN,@str)
end


RETURN(@str)
END




--调用:
--update table1 set column1=dbo.f_Convert(column1,0);
0 0
原创粉丝点击