首页 > 代码库 > SQL转换全角和半角函数

SQL转换全角和半角函数

SQL转换全角和半角函数


CREATE   FUNCTION   f_Convert(     @str   NVARCHAR(4000),   --要转换的字符串     @flag   bit                             --转换标志,0转换成半角,1转换成全角 )RETURNS   nvarchar(4000) AS BEGIN     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) END GO调用: update table1 set column1=dbo.f_Convert(column1,0); declare @s1 varchar(8000)  select   @s1=中    2-3456a78STUVabn中国opwxyz select dbo.f_convert(@s1,0),dbo.f_convert(@s1,1)

 

   

SQL转换全角和半角函数