一、首先创建一个自定义函数,代码如下:
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)