各位好,
我现在有一个表,表名为: mytest,数据如下 序号 内容 附加
1 张三 11
2 李四,王五 22
3 赵六 钱七 孙八级 陈九九 3333 这个内容字段中保存一个或多个姓名,会以空格 或 , 分隔开,最多这个字段保存20个姓名 我想用sql,查询出如下值, 1 张三 附加
2 张四 22
3 王五 22
4 赵六 3333
5 钱七 3333
6 孙八级 3333
7 陈九九 3333 请帮一下。
谢谢!
我现在有一个表,表名为: mytest,数据如下 序号 内容 附加
1 张三 11
2 李四,王五 22
3 赵六 钱七 孙八级 陈九九 3333 这个内容字段中保存一个或多个姓名,会以空格 或 , 分隔开,最多这个字段保存20个姓名 我想用sql,查询出如下值, 1 张三 附加
2 张四 22
3 王五 22
4 赵六 3333
5 钱七 3333
6 孙八级 3333
7 陈九九 3333 请帮一下。
谢谢!
http://topic.csdn.net/u/20080721/12/c87d1a1d-b817-4de6-84ac-4f6ab56ef15a.html?seed=714459994#
不过你这里面即有空格,也有用逗号的,需要统一一下
select distinct wid,cgmc,
substrb(hjrystr,
decode(rn,1,1,instrb(hjrystr,',',1,rn-1)+1),
decode(instrb(hjrystr,',',1,rn),0,lengthb(hjrystr)+1,instrb(hjrystr,',',1,rn))
-decode(rn,1,1,instrb(hjrystr,',',1,rn-1)+1)) element_name
from t_jzg_jxcg a ,(select level rn from
(select max(Lengthb(hjrystr)-lengthb(replace(hjrystr,',',''))+1) mrn from t_jzg_jxcg )
connect by
level <=mrn ) b
where Lengthb(hjrystr)-lengthb(replace(hjrystr,',',''))+1 >= b.rn )
order by cgmc