【转载】MSSQL中单字节和双字节互转自定义函数(全角半角转换)

2021/10/25 2:09:38

本文主要是介绍【转载】MSSQL中单字节和双字节互转自定义函数(全角半角转换),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、首先创建一个自定义函数,代码如下:

alter function f_convert(
@str nvarchar(4000), --要转换的字符串
@flag bit            --转换标志,0转换成半角,1转换成全角
)
returns nvarchar(max)
as
begin
  declare @pat nvarchar(8),@step int,@i int,@spc int
  if @flag=0
    select @pat=N'%[!-~ ]%',@step=-65248
  else
    select @pat=N'%[!-~ ]%',@step=65248
  set @i=patindex(@pat COLLATE Latin1_General_BIN,@str)
  while @i>0
    select @str=stuff(@str,@i,1,nchar(case unicode(substring(@str,@i,1))
    when 32 then 12288
    when 12288 then 32
    else unicode(substring(@str,@i,1))+@step end))
    ,@i=patindex(@pat COLLATE Latin1_General_BIN,@str)
  return(@str)
end
go

2、函数创建完成后,就可以用select语句测试啦,测试代码如下:

 -- 单字节转双字节
 select  dbo.f_convert('abcd1234:单字节转双字节',1)
 -- 双字节转单字节
 select  dbo.f_convert('abcd1234:单字节转双字节',0)

 

* 3、VFP中对应的函数为:
* ======================
strconv(cExpression,1)
strconv(cExpression,2)  

 



这篇关于【转载】MSSQL中单字节和双字节互转自定义函数(全角半角转换)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程