各位好, 
  我现在有一个表,表名为: mytest,数据如下 序号  内容                          附加 
1    张三                            11 
2    李四,王五                      22 
3    赵六 钱七 孙八级 陈九九        3333 这个内容字段中保存一个或多个姓名,会以空格 或 , 分隔开,最多这个字段保存20个姓名 我想用sql,查询出如下值, 1  张三    附加 
2  张四    22 
3  王五    22 
4  赵六    3333 
5  钱七    3333 
6  孙八级  3333 
7  陈九九  3333 请帮一下。 
谢谢! 

解决方案 »

  1.   

    参考此贴,字符串拆分
    http://topic.csdn.net/u/20080721/12/c87d1a1d-b817-4de6-84ac-4f6ab56ef15a.html?seed=714459994#
    不过你这里面即有空格,也有用逗号的,需要统一一下
      

  2.   

    先把逗号replace为空格,然后再分拆
      

  3.   

    replace("你的内容",',',' ').split(' ')
      

  4.   

    hehe,忘了在哪个区了,不过在开发工具中处理要简单好多
      

  5.   

    通过下面的语句可以实现了。select trim(element_name) as teacherName,wid,cgmc from ( 
    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