将数字转换为字母

时间:2011-01-13 03:23:31

标签: sql-server-2005 tsql

鉴于一个数字,你如何将其转换为字母?

1 个答案:

答案 0 :(得分:6)

您可以将现有逻辑转换为t-sql标量函数,如下所示:

CREATE FUNCTION dbo.fnColumnNameFromIndex(@i int)
RETURNS varchar(3)
AS
BEGIN
DECLARE @dividend int, @letters varchar(3), @modulo int
    SET @dividend = @i
    SET @letters = ''

    WHILE @dividend > 0
    BEGIN
        SET @modulo = (@dividend - 1) % 26
        SET @letters = CHAR(65 + @modulo) + @letters
        SET @dividend = CONVERT(int, (@dividend - @modulo) / 26 )
    END

    RETURN @letters;
END
GO

这样称呼:

  

SELECT dbo.fnColumnNameFromIndex(2000)

...诚然没有设置逻辑,但我不认为这是一个固定的逻辑问题。