SQL 全角转半角
如何将A表中的全角字符用SQL命令转换成半角(有数字,有文字)?请详细介绍!使用网上代码:CREATEFUNCTIONf_Convert(@strNVARCHAR(400...
如何将A表中的全角字符用SQL命令转换成半角(有数字,有文字)?
请详细介绍!
使用网上代码:
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
GO
出现:
服务器: 消息 2714,级别 16,状态 5,过程 f_Convert,行 20
数据库中已存在名为 'f_Convert' 的对象。"
要不就是"未定义@str"
请帮下!谢谢拉! 展开
请详细介绍!
使用网上代码:
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
GO
出现:
服务器: 消息 2714,级别 16,状态 5,过程 f_Convert,行 20
数据库中已存在名为 'f_Convert' 的对象。"
要不就是"未定义@str"
请帮下!谢谢拉! 展开
2013-04-18
展开全部
http://jorkin.reallydo.com/article.asp?id=339看看这个网站,上面有这方面的常用函数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询