首页 热点资讯 义务教育 高等教育 出国留学 考研考公

Oracle 用内置函数提取字符串

发布网友 发布时间:2022-04-22 05:15

我来回答

3个回答

热心网友 时间:2022-04-07 21:17

你这个,必须要有一个判断字符是否为数字的函数,得先定义一个函数

创建函数

create or replace function isNumber(p in varchar2)
return number
is
result number;
begin
result := to_number(p);
return 1;
exception
when VALUE_ERROR then return 0;
end;

调用

select decode(isNumber(substr('abcd102a',-1)),1,'abcd102a',substr('abcd102a',1,length('abcd102a')-1)) from al

其中abcd102a是传入的字符串,你可以改为其他的试验一下

热心网友 时间:2022-04-07 22:35

case when substr(f, length(f),1) between '0' and '9' then f
when upper(substr(f, length(f), 1)) between 'A' and 'Z' then substr(f, 1, length(f)-1)
else null
end

热心网友 时间:2022-04-08 00:09

将最后一个字符取出,获取其ascii码值,可以判断其值的范围,按照要求使用
以下供参考,没调试的
case when ascii(substr(str ,-1,1 ) ) betwenn 48 and 57 then str
else substr(str,1,len(str)-1) end

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com