欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL 26字母进位SQL

程序员文章站 2022-06-08 15:03:09
sql 26字母进位sql   基本思路,把需要进行加法运算的字符转换为10进制后,进行进位10进制的加法,加法完成的结果在转换为26进制字符表示方法,sql 如下,...

sql 26字母进位sql

 

基本思路,把需要进行加法运算的字符转换为10进制后,进行进位10进制的加法,加法完成的结果在转换为26进制字符表示方法,sql 如下,如果有更好的思路或者方法,可以留言!

 

[sql] 
--输入表达式  
declare @expression nvarchar(max)  
set @expression='aa'  
--需要加多少位  
declare @count int  
set @count = 0  
---------------------  
    --字母表达式长度  
    declare @length int  
    set @length = len(@expression)  
    --转为10进制后的数字  
    declare @charvalue int  
    set @charvalue =0  
    --循环每个字母位转为10进制  
    while @length > 0  
    begin  
        set @charvalue += (ascii(substring(@expression,@length,1))-64)*power(26,@length-1)  
        set @length -=1  
    end  
    --10进制加法  
    set @charvalue += @count  
    --新的字符表达式位数  
    declare @newcharlength int  
    --计算加完后的十进制转为字母26进制的位数  
    set @newcharlength = log(@charvalue)/log(26)  
    --加完后表达式  
    declare @newchar nvarchar(max)  
    set @newchar = ''  
      
    while @newcharlength >= 0  
    begin  
        declare @indexnum int  
        set @indexnum = @charvalue/power(26,@newcharlength)  
        set @newchar += substring('abcdefghijklmnopqrstuvwxyz', @indexnum,1)  
        select @charvalue,power(26,@newcharlength),@indexnum  
        set @charvalue -= @indexnum * power(26,@newcharlength)  
        set @newcharlength -= 1  
    end  
      
    select @newchar