16位的36进制字符串相加的函数怎么做?
时间:2011-12-08
来源:互联网
等于 0123456789ABCDEFI
如果是0123456789ABCDEFZ加1后等于0123456789ABCDEG0
坐等高人、
用SQL实现 其他语言不要来了。。
作者: Sunnynanbing 发布时间: 2011-12-08
作者: ssp2009 发布时间: 2011-12-08
有空再写
求现在。。。。等着用
作者: Sunnynanbing 发布时间: 2011-12-08

作者: geniuswjt 发布时间: 2011-12-08
declare @num1 varchar(200), @num2 varchar(200), @res varchar(200) declare @len1 int, @len2 int, @i int, @n int declare @c bit set @num1 = '0123456789ABCDEFH' set @num2 = '1' set @num1 = reverse(upper(@num1)) set @num2 = reverse(upper(@num2)) set @len1 = len(@num1) set @len2 = len(@num2) set @i = 1 set @c = 0 set @res = '' while ((@i <= @len1) or (@i <= @len2)) begin set @n = @c if @i <= @len1 begin if substring(@num1, @i, 1) >= 'A' set @n = @n + ascii(substring(@num1, @i, 1)) - ascii('A') + 10 else set @n = @n + ascii(substring(@num1, @i, 1)) - ascii('0') end if @i <= @len2 begin if substring(@num2, @i, 1) >= 'A' set @n = @n + ascii(substring(@num2, @i, 1)) - ascii('A') + 10 else set @n = @n + ascii(substring(@num2, @i, 1)) - ascii('0') end if @n >= 36 begin set @c = 1 set @n = @n - 36 end else set @c = 0 if @n >= 10 set @res = @res + char(@n - 10 + ascii('A')) else set @res = @res + char(@n + ascii('0')) set @i = @i + 1 end set @res = reverse(@res) select @res
作者: misterliwei 发布时间: 2011-12-08
作者: sunstarduo 发布时间: 2011-12-08
SQL code
declare @num1 varchar(200), @num2 varchar(200), @res varchar(200)
declare @len1 int, @len2 int, @i int, @n int
declare @c bit
set @num1 = '0123456789ABCDEFH'
set @num2 = '1'
set @num1 = r……
能麻烦多写点注释么
好多都看不懂
谢谢了
作者: Sunnynanbing 发布时间: 2011-12-08
declare @num1 varchar(200), @num2 varchar(200), @res varchar(200) declare @len1 int, @len2 int, @i int, @n int declare @c bit set @num1 = 'ZZZZZZZZ' set @num2 = '1' set @num1 = reverse(upper(@num1)) set @num2 = reverse(upper(@num2)) set @len1 = len(@num1) set @len2 = len(@num2) set @i = 1 set @c = 0 set @res = '' while ((@i <= @len1) or (@i <= @len2)) begin set @n = @c if @i <= @len1 begin if substring(@num1, @i, 1) >= 'A' set @n = @n + ascii(substring(@num1, @i, 1)) - ascii('A') + 10 else set @n = @n + ascii(substring(@num1, @i, 1)) - ascii('0') end if @i <= @len2 begin if substring(@num2, @i, 1) >= 'A' set @n = @n + ascii(substring(@num2, @i, 1)) - ascii('A') + 10 else set @n = @n + ascii(substring(@num2, @i, 1)) - ascii('0') end if @n >= 36 begin set @c = 1 set @n = @n - 36 end else set @c = 0 if @n >= 10 set @res = @res + char(@n - 10 + ascii('A')) else set @res = @res + char(@n + ascii('0')) set @i = @i + 1 end --忘了进位 if @c = 1 set @res = @res + '1' set @res = reverse(@res) select @res
作者: misterliwei 发布时间: 2011-12-08
A-Z-0-9吗?
否则没法写喔.
作者: ap0405140 发布时间: 2011-12-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28