Преобразовать число в буквы - PullRequest
2 голосов
/ 13 января 2011

Учитывая число, как вы можете преобразовать это в буквы?

1 Ответ

6 голосов
/ 13 января 2011

Вы можете просто перевести существующую логику в скалярную функцию 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)

... по общему признанию, не установлена ​​логика, но я не вижу в этом проблемы с установленной логикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...