ORACLE中,有一个字段的数据是FF000001300-12345这样的,我需要做特殊处理,求帮助。
答案:1 悬赏:60 手机版
解决时间 2021-02-11 10:24
- 提问者网友:眉目添风霜
- 2021-02-10 21:11
ORACLE中,有一个字段的数据是FF000001300-12345这样的,我需要做特殊处理,求帮助。
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-02-10 21:54
探讨下,我写复杂一点的sql语句总是比较慢,写得不够优美,没有简洁高效的sql语句提供。我说下我的方法:
如果是编程来处理这样的字符串,就不难。所以我想到plsql,具备编程的能力。那就按函数,过程,这样的思路去一步步解决,就像用高级语言一样了。
定义函数1,处理字符串从第3位开始取,解决问题你的问题1。
create function func_1(content varchar2)
return varchar2
IS
ret varchar2;
begin
ret :=substr(content ,3,9);
return ret;
end;
定义函数2,处理第1步返回的字符串,解决问题你的问题2。
create function func_2(content varchar2)
return varchar2
IS
ret varchar2;
i number:=0;
begin
----循环判断0,如果出现‘0’取下一位字符,否则返回该位之后的字符串。
end;
对表中的多行记录都需要处理就采用循环语句完成。
采用游标循环处理
以上是我的思路。总体就是把sql的各种基本语法用来,最终就是编程。
追问字符串中有“-”,请问怎么去掉?
如果是编程来处理这样的字符串,就不难。所以我想到plsql,具备编程的能力。那就按函数,过程,这样的思路去一步步解决,就像用高级语言一样了。
定义函数1,处理字符串从第3位开始取,解决问题你的问题1。
create function func_1(content varchar2)
return varchar2
IS
ret varchar2;
begin
ret :=substr(content ,3,9);
return ret;
end;
定义函数2,处理第1步返回的字符串,解决问题你的问题2。
create function func_2(content varchar2)
return varchar2
IS
ret varchar2;
i number:=0;
begin
----循环判断0,如果出现‘0’取下一位字符,否则返回该位之后的字符串。
end;
对表中的多行记录都需要处理就采用循环语句完成。
采用游标循环处理
以上是我的思路。总体就是把sql的各种基本语法用来,最终就是编程。
追问字符串中有“-”,请问怎么去掉?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯