全角、半角替换函数
                            
                            
                            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
                        
                        
                        ?@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
總結
                            
                        - 上一篇: MySQL的存储函数与存储过程的区别
 - 下一篇: datetime模块日期转换和列表sor