SqlServer数据库全角转半角



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);









---------------转换2------------------------



/***********************************************************************  
--名称: CONVERT_BJ_QJ  
--描述: 通过对字段进行半角转全角处理。  
--参数: @TITLE 输入值 cgenius的NEWS_MAIN.TITLE  
--返回: int  
--创建:
--历史:   
*************************************************************************/  
CREATE FUNCTION dbo.FN_CONVERT_BJ_QJ (@STR VARCHAR(1000))  
RETURNS VARCHAR(256) as
BEGIN   
  DECLARE @STR_OUT VARCHAR(256)
  SET @STR_OUT=CASE WHEN @STR collate   Chinese_PRC_CS_AS_WS   like '%--%' THEN replace(@STR, '--', '--')  
                      WHEN @STR collate   Chinese_PRC_CS_AS_WS   like '%:%' THEN replace(@STR, ':', ':')  
                      WHEN @STR collate   Chinese_PRC_CS_AS_WS   like  '%,%' THEN replace(@STR, ',', ',')  
                      WHEN @STR collate   Chinese_PRC_CS_AS_WS   like  '%<<%' THEN replace(@STR, '<<', '《')  
                      WHEN @STR collate   Chinese_PRC_CS_AS_WS   like  '%>>%' THEN replace(@STR, '>>', '》')  
                      ELSE @STR
                 END  
                 
  RETURN @STR_OUT
  
END  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值