2011-01-13 127 views

回答

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)

...承認沒有設置邏輯,但我不認爲這是一個設置邏輯問題。