SQLserver2008全角半角转换

来源:互联网 发布:磐石软件 编辑:程序博客网 时间:2024/06/08 06:53
CREATE FUNCTION f_Convert(@str NVARCHAR(4000), --要转换的字符串@flag bit              --转换标志,0转换成半角,1转换成全角)RETURNS nvarchar(4000)ASBEGIN    DECLARE @pat nvarchar(8),@step int,@i int,@spc int    IF @flag=0        SELECT @pat=N'%[!-~]%',@step=-65248,            @str=REPLACE(@str,N' ',N' ')    ELSE        SELECT @pat=N'%[!-~]%',@step=65248,            @str=REPLACE(@str,N' ',N' ')    SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    WHILE @i>0        SELECT @str=REPLACE(@str,                SUBSTRING(@str,@i,1),                NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))            ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    RETURN(@str)ENDGO

原创粉丝点击