sql create function将string转换为ascii整数

时间:2015-08-14 04:38:58

标签: mysql sorting stored-procedures

我想通过问题no来对记录进行排序,例如:1,2c,10,12a。将它们转换为ascii代码的总和是否很好?如果是的话,下面的代码创建sql函数会出现什么错误?如果不是,那将是更好的方法。

CREATE FUNCTION dbo.asciiCodeInteger (@string AS VARCHAR(3))
    RETURNS int
    AS
    BEGIN
      DECLARE @result int;
      DECLARE @char CHAR(1);

      SET @result = 0;

      WHILE LEN(@string) > 0
      BEGIN
        SET @char = LEFT(@string, 1);
        SET @result = @result + ASCII(@char);
        SET @string = SUBSTRING(@string, 2, LEN(@string));
      END
      RETURN (@result);
    END

1 个答案:

答案 0 :(得分:0)

我认为,你需要改变一些逻辑,如

  1. 声明@ position = 1
  2. @Char = SUBSTRING(@string,@ position,1)
  3. 仅修改@position而不是@string。
  4. 解决方案看起来像,(无法在SQL小提琴上运行)

    {{1}}