Base 36 to Base 10 conversion using SQL only(仅使用 SQL 将 Base 36 转换为 Base 10)
问题描述
出现了一种情况,我需要在 SQL 语句的上下文中执行 base 36 到 base 10 的转换.Oracle 9 或 Oracle 10 中似乎没有内置任何内容来解决此类问题.我的 Google-Fu 和 AskTom 建议创建一个 pl/sql 函数来处理该任务.在这一点上,这对我来说不是一个选择.我正在寻找可能有助于我解决此问题的方法的建议.
A situation has arisen where I need to perform a base 36 to base 10 conversion, in the context of a SQL statement. There doesn't appear to be anything built into Oracle 9, or Oracle 10 to address this sort of thing. My Google-Fu, and AskTom suggest creating a pl/sql function to deal with the task. That is not an option for me at this point. I am looking for suggestions on an approach to take that might help me solve this issue.
把它变成一个视觉形式...
To put this into a visual form...
WITH
Base36Values AS
(
SELECT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' myBase36 FROM DUAL
),
TestValues AS
(
SELECT '01Z' BASE36_VALUE,
71 BASE10_VALUE FROM DUAL
)
SELECT *
FROM Base36Values,
TestValues
我正在寻找根据输入 01Z 计算值 71 的东西.编辑 - 这是向后......给定 01Z 将其转换为 71.
I am looking for something to calculate the value 71, based on the input 01Z. EDIT - that is backwards... given 01Z translate it to 71.
作为贿赂,每一个有用的答案都会得到一个免费的赞.
As a bribe, each useful answer gets a free 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)
)
)
这篇关于仅使用 SQL 将 Base 36 转换为 Base 10的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:仅使用 SQL 将 Base 36 转换为 Base 10
基础教程推荐
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01