当前位置: 代码迷 >> Oracle管理 >> 求一相对复杂的sql写法解决方案
  详细解决方案

求一相对复杂的sql写法解决方案

热度:0   发布时间:2016-04-24 05:35:05.0
求一相对复杂的sql写法
目前我遇到oracel数据库中一张表t_order,其中有一个字段存在上层数据合并后存入到这个字段的内容,但也有不合并的,具体情况如下:
表:t_order
字段:ordercode
数据内容:
ordercode
VF090119/VF090118
VF090120
VF090117/VF090116/VF090115
VF090121

因为我要控制上层数据如果已经流到t_order中就不能再显示,这样如果根据ordercode进行关联,合并的数据就无法与上层进行关联了,能不能写一个sql语句把合并的ordercode自动拆分,或者提供一个sql函数也可以。
具体显示效果:
ordercode
VF090119
VF090118
VF090120
VF090117
VF090116
VF090115
VF090121
这样我就可以与上层进行关联过滤了。希望哪位兄弟帮忙!!!

------解决方案--------------------
写成过程来处理!
------解决方案--------------------
SQL code
create or replace type acc_type as object(acc varchar2(50))/create or replace type acc_table as table of acc_type/create or replace function str2table (acc_str in varchar2) return acc_table pipelinedisv_str varchar2(30000) := acc_str;v_acc varchar2(30);v_acc_end pls_integer;beginloopv_acc_end := instrb(v_str,',');exit when (v_acc_end=0 or v_str is null);v_acc := substrb(v_str,1,v_acc_end-1);v_str := ltrim(v_str,v_acc);v_str := ltrim(v_str,',');pipe row(acc_type(rtrim(v_acc,';')));end loop;return;end;/
  相关解决方案