加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer数据库全角转换成半角

发布时间:2020-12-12 13:28:39 所属栏目:MsSql教程 来源:网络整理
导读: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??
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,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,1))+@step))?,@i=PATINDEX(@pat???COLLATE???LATIN1_GENERAL_BIN,@str)?
RETURN(@str)?
END?
GO调用:update?table1?set?column1=dbo.f_Convert(column1,0);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读