我需要将 FIRST/SECOND/THIRD/FOURTH/FIFTH .... 转换为 1 2 3 4 5 .... oracle中有函数吗? 其他方式可能如下,但我想要反向
SELECT TO_CHAR(to_date(3,'J'), 'fmJSPTH') FROM dual;
最佳答案
好问题!
create table t (w varchar2(30));
insert into t values ('First');
insert into t values ('THIRD');
insert into t values ('eleventh');
insert into t values ('Twenty-eighth');
insert into t values ('two hundred fifty sixth');
select
t.w, dict.n
from t
left join (
select
level n,
regexp_replace(to_char(to_date(level,'J'),'fmJSPTH'),'[^A-Z]') w
FROM dual
connect by level <= 1000
) dict on regexp_replace(upper(t.w),'[^A-Z]')=dict.w
关于sql - 将序数格式转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282991/