使用SQL仅Base 36到Base 10转换
发布时间:2020-12-12 16:48:19 所属栏目:MsSql教程 来源:网络整理
导读:在SQL语句的上下文中出现了一种情况,在这种情况下,我需要执行一个基础36来转换基数.在Oracle 9或Oracle 10中似乎没有任何内容可以解决这类问题.我的Google-Fu和AskTom建议创建一个pl / sql函数来处理这个任务.这对我来说不是一个选择.我正在寻找有关采取这种
在SQL语句的上下文中出现了一种情况,在这种情况下,我需要执行一个基础36来转换基数.在Oracle 9或Oracle 10中似乎没有任何内容可以解决这类问题.我的Google-Fu和AskTom建议创建一个pl / sql函数来处理这个任务.这对我来说不是一个选择.我正在寻找有关采取这种方法的建议可能有助于我解决这个问题.
把它变成视觉形式… WITH Base36Values AS ( SELECT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL ),TestValues AS ( SELECT '01Z' BASE36_VALUE,71 BASE10_VALUE FROM DUAL ) SELECT * FROM Base36Values,TestValues 我正在寻找一些计算值71,基于输入01Z. 作为贿赂,每个有用的答案得到一个免费的upvote. 谢谢 邪恶. 解决方法select sum(position_value) from ( select power(36,position-1) * case when digit between '0' and '9' then to_number(digit) else 10 + ascii(digit) - ascii('A') end as position_value from ( select substr(input_string,length(input_string)+1-level,1) digit,level position from (select '01Z' input_string from dual) connect by level <= length(input_string) ) ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |