某个字段值为逗号隔开的多个字符串,现要以逗号为界分别取出这些值,用来绑定到datagrid,该如何做? 比如字段: id str 1 1,2,3,4,5,要取得这样的结果集: str 1 2 3 4 5 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个以前写过的实力crm@zhang>desc test1; Name Null? Type ----------------------------------------------------------------------------------- -------- ------ NAME VARCHAR2(20) COURSE VARCHAR2(40)crm@zhang>select * from test1;NAME COURSE-------------------- ----------------------------------------张三 数学,语文,英语李四 计算机王五 体育,计算机,大学物理,邓小平理论赵一 大学物理陈七 大学物理,C语言crm@zhang>select * from ( 2 select name, (case when num=1 then course else 3 substr(course, decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))+1, 4 decode(instr(course, ',', 1, rownum+1-rnum), 0, length(course)+1, instr(course, ',', 1, rownum+1-rnum))-decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))-1) end) cc 5 from ( 6 select name, course, num, decode(num, 1, sum(num) over(order by rowid), sum(num) over(order by rowid)-num+1) rnum from ( 7 select name, course, length(course)-length(replace(course, ',', ''))+1 num from zhang.test1 8 ) 9 ) 10 connect by rownum-rnum<num 11 ) 12 where rownum<12;NAME CC-------------------- -------------------------------------------------------------------------------张三 数学张三 语文张三 英语李四 计算机王五 体育王五 计算机王五 大学物理王五 邓小平理论赵一 大学物理陈七 大学物理陈七 C语言 select * from (select name, (case when num=1 then course else substr(course, decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))+1, decode(instr(course, ',', 1, rownum+1-rnum), 0, length(course)+1, instr(course, ',', 1, rownum+1-rnum))-decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))-1) end) cc from (select name, course, num, decode(num, 1, sum(num) over(order by rowid), sum(num) over(order by rowid)-num+1) rnum from (select name, course, length(course)-length(replace(course, ',', ''))+1 num from zhang.test1))connect by rownum-rnum<num)where rownum<12 oracle 网页操作 oracle导出问题 求助:数据库导入导出问题 一个新手的问题? 如何获得事务量大小,如何确定事务量太大? PRO*C/C++的SQL语句问题 这样的存储过程怎么写啊??大家来帮个忙了 500分求救命人!!! 各位大侠,oracle8i个人版,sql*plus搜索结果都是2 关于dcl ,ddl ,dml命令的问题 服务器的硬盘能分区吗? 请教一个表设计的问题
Name Null? Type
----------------------------------------------------------------------------------- -------- ------
NAME VARCHAR2(20)
COURSE VARCHAR2(40)crm@zhang>select * from test1;NAME COURSE
-------------------- ----------------------------------------
张三 数学,语文,英语
李四 计算机
王五 体育,计算机,大学物理,邓小平理论
赵一 大学物理
陈七 大学物理,C语言crm@zhang>select * from (
2 select name, (case when num=1 then course else
3 substr(course, decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))+1,
4 decode(instr(course, ',', 1, rownum+1-rnum), 0, length(course)+1, instr(cou
rse, ',', 1, rownum+1-rnum))-decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))-1) end) c
c
5 from (
6 select name, course, num, decode(num, 1, sum(num) over(order by rowid), sum(num) over(order by
rowid)-num+1) rnum from (
7 select name, course, length(course)-length(replace(course, ',', ''))+1 num from zhang.test1
8 )
9 )
10 connect by rownum-rnum<num
11 )
12 where rownum<12;NAME CC
-------------------- -------------------------------------------------------------------------------
张三 数学
张三 语文
张三 英语
李四 计算机
王五 体育
王五 计算机
王五 大学物理
王五 邓小平理论
赵一 大学物理
陈七 大学物理
陈七 C语言
select name, (case when num=1 then course else
substr(course, decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))+1,
decode(instr(course, ',', 1, rownum+1-rnum), 0, length(course)+1, instr(course, ',', 1, rownum+1-rnum))-decode(rownum-rnum, 0, 0, instr(course, ',', 1, rownum-rnum))-1) end) cc
from (
select name, course, num, decode(num, 1, sum(num) over(order by rowid), sum(num) over(order by rowid)-num+1) rnum from (
select name, course, length(course)-length(replace(course, ',', ''))+1 num from zhang.test1
)
)
connect by rownum-rnum<num
)
where rownum<12