zoukankan      html  css  js  c++  java
  • SqlServer数据库全角和半角互转的方法

    ---摘要: SqlServer数据库全角和半角互转的方法 CREATE FUNCTION f_Convert( @str NVARCHAR(4000),
    --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全角 )
    --RETURNS nvarchar(4000) www.2cto.com AS BEG...

    --table1为要转换的表,column1为要转换的表字段
    --调用:update table1 set column1=dbo.f_Convert(column1,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;

  • 相关阅读:
    同余方程(codevs 1200)
    Number Sequence(poj 1019)
    Paths on a Grid(poj 1942)
    取余运算(codevs 1497)
    火车站(codevs 2287)
    教官的游戏(codevs 2793)
    转圈游戏(codevs 3285)
    Code(poj 1850)
    菜菜买气球(codevs 2851)
    3Sum
  • 原文地址:https://www.cnblogs.com/furenjian/p/9244577.html
Copyright © 2011-2022 走看看