鉴于一个数字,你如何将其转换为字母?
答案 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)
...诚然没有设置逻辑,但我不认为这是一个固定的逻辑问题。