SELECT LASTNAME, ID
  FROM HRMRESOURCE
 WHERE ID IN
       (SELECT REGEXP_SUBSTR(PEIHER, '[^,]+', 1, LEVEL)
          FROM (SELECT PEIHER FROM FORMTABLE_MAIN_50)
        CONNECT BY LEVEL <=
                   LENGTH(PEIHER) - LENGTH(REPLACE(PEIHER, ',', '')) + 1)

解决方案 »

  1.   

    好像不对哦,用我写的这个还能查询出一些内容,用你帮我写的总是提示“ORA-01722: 无效数字”
      

  2.   

    select a.gznr      工作内容,
           a.jhwcrq    计划完成日期,
           a.requestid 流程id,
           a.wasj      完成时间,
           a.bez       备注,
           d.lastname  配合人
      from formtable_main_50 a
      left join (select lastname, id
                   from hrmresource
                  where id in
                        (SELECT REGEXP_SUBSTR(peiher, '[^,]+', 1, rownum)
                           from (select peiher from formtable_main_50)
                         CONNECT BY ROWNUM <=
                                    LENGTH(peiher) -
                                    LENGTH(REPLACE(peiher, ',', '')) + 1)) d
        on a.peiher = d.id;
      

  3.   

    提示 on a.peiher = d.id;
    标红的这个a是无效数字
      

  4.   

    这只是个别名,从你第一个复制而来,怎么会~~~
    你执行你的
    第一个
    select 
    a.gznr 工作内容
    ,a.jhwcrq 计划完成日期,a.requestid 流程id
    ,a.wasj 完成时间,a.bez 备注 
    ,d.lastname 配合人
    from formtable_main_50 a
    left join hrmresource d 
    on a.peiher=d.id 
    会报错吗
      

  5.   

    把字段名去掉是什么意思,没懂
    这个语句写全是:
    select 
    a.gznr 工作内容
    ,a.jhwcrq 计划完成日期,a.requestid 流程id
    ,a.wasj 完成时间,a.bez 备注 
    ,d.lastname 配合人
    ,e.lastname 批准人
    ,f.lastname 执行人
    from formtable_main_50 a
    left join hrmresource d 
    on a.peiher=d.id 
    left join hrmresource e
    on a.pzr=e.id 
    left join hrmresource e
    on a.zxr=f.id 
    如果不查询配合人这个字段就没问题,配合人是个多人力资源字段,批准人、执行人是个一般人力资源字段