我的表里有一列为数字 1,2,3,4 等  请问如何快速的将数字换成对应顺序的字母 例如 1→A  2→B  3→C等
谢谢先

解决方案 »

  1.   

    DECLARE @STR VARCHAR(50)
    SELECT @STR='2,26,13,7,37'
    SELECT 
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    ','+@STR+','
    ,',1,',',A,'),',2,',',B,'),',3,',',C,'),',4,',',D,'),',5,',',E,'),',6,',',F,'),',7,',',G,')
    ,',8,',',H,'),',9,',',I,'),',10,',',J,'),',11,',',K,'),',12,',',L,'),',13,',',M,'),',14,',',N,')
    ,',15,',',O,'),',16,',',P,'),',17,',',Q,'),',18,',',R,'),',19,',',S,'),',20,',',T,'),',21,',',U,')
    ,',22,',',V,'),',23,',',W,'),',24,',',X,'),',25,',',Y,'),',26,',',Z,')
    --,B,Z,M,G,37,
      

  2.   

    DECLARE @STR VARCHAR(50)
    SELECT @STR='2,26,13,7,37'
    SELECT 
    LEFT(STUFF(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    ','+@STR+','
    ,',1,',',A,'),',2,',',B,'),',3,',',C,'),',4,',',D,'),',5,',',E,'),',6,',',F,'),',7,',',G,')
    ,',8,',',H,'),',9,',',I,'),',10,',',J,'),',11,',',K,'),',12,',',L,'),',13,',',M,'),',14,',',N,')
    ,',15,',',O,'),',16,',',P,'),',17,',',Q,'),',18,',',R,'),',19,',',S,'),',20,',',T,'),',21,',',U,')
    ,',22,',',V,'),',23,',',W,'),',24,',',X,'),',25,',',Y,'),',26,',',Z,')
    ,1,1,'')
    ,LEN(STUFF(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    ','+@STR+','
    ,',1,',',A,'),',2,',',B,'),',3,',',C,'),',4,',',D,'),',5,',',E,'),',6,',',F,'),',7,',',G,')
    ,',8,',',H,'),',9,',',I,'),',10,',',J,'),',11,',',K,'),',12,',',L,'),',13,',',M,'),',14,',',N,')
    ,',15,',',O,'),',16,',',P,'),',17,',',Q,'),',18,',',R,'),',19,',',S,'),',20,',',T,'),',21,',',U,')
    ,',22,',',V,'),',23,',',W,'),',24,',',X,'),',25,',',Y,'),',26,',',Z,')
    ,1,1,''))-1)
    --B,Z,M,G,37
      

  3.   

    如果只有1-4,使用case whenselect case col  
             when 1 then 'A' 
             when 2 then 'B' 
             when 3 then 'C' 
             when 4 then 'D' 
           end
    from tb
      

  4.   

    也可以使用ascii,char来进行转换.create table tb(col int)
    insert into tb values(1)
    insert into tb values(2)
    insert into tb values(3)
    insert into tb values(4)
    insert into tb values(5)
    insert into tb values(6)
    insert into tb values(7)
    insert into tb values(8)
    insert into tb values(9)select col_cnt = col, col_char = char(ascii(ltrim(col)) + 16) from tbdrop table tb/*
    col_cnt     col_char 
    ----------- -------- 
    1           A
    2           B
    3           C
    4           D
    5           E
    6           F
    7           G
    8           H
    9           I(所影响的行数为 9 行)
    */