sqlserver表中圆角数据怎么转化成半角
答案:2 悬赏:30
解决时间 2021-11-27 14:02
- 提问者网友:乏味沐染
- 2021-11-27 09:52
sqlserver表中圆角数据怎么转化成半角
最佳答案
- 二级知识专家网友:糜废丧逼
- 2021-11-27 11:21
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
update table_1 set column_name=dbo.f_Convert(column_name,0)
当数据量比较大时,一条一条改不太现实,可以用上面的函数批量更改
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
update table_1 set column_name=dbo.f_Convert(column_name,0)
当数据量比较大时,一条一条改不太现实,可以用上面的函数批量更改
全部回答
- 1楼网友:万千宠爱
- 2021-11-27 12:00
差别不大,sql server都是sql标准语法,而且2000和2005都是同一版本,只是在功能上会有所区别,会增加一些语法,但之前的语句几乎都兼容。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯