SQL: Is there a possibility to convert numbers (1,2,3,4…) to letters (A,B,C,D…)

前端 未结 5 1666
伪装坚强ぢ
伪装坚强ぢ 2020-12-14 09:26

Is there a possibility to obtain letters (like A,B) instead of numbers (1,2) e.g. as a result of Dense_Rank function call(in MS Sql) ?

5条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-14 09:35

    hint: try this in your SQL Enterprise manager

      select char(65), char(66), char(67)
    

    a full solution, for ranks up to 17,500 (or three letters, up to ZZZ) is:

    select 
        case When rnk < 703 Then ''
     else Char(64 + ((rnk-26) / 26 / 26)) End +
        case When rnk < 27 Then '' 
       When rnk < 703 Then Char(64 + ((rnk-1)/ 26))
     else Char(65 + ((rnk-1)% 702 / 26)) End +
        Char(65 + ((rnk - 1) % 26))  
    from (select Dense_Rank() 
         OVER (ORDER BY T.Sequence) rnk
          From YourTable t) z
    

提交回复
热议问题