解决方案 »

  1.   

    select * from T_017_TABLE  
    for update   regexp_like(approvers,'^2095,*$'||'^*,2095$'||'^*,2095,*$') or approvers = '2095' ;  怎么不行?
      

  2.   

    select * from T_017_ATTENDANCE_APPROVERs  where regexp_like(approvers,'^2095,*$'||'^*,2095$'||'^*,2095,*$') or approvers = '2095' ;怎么不行?[/
      

  3.   

    select * from T_017_TABLE  where  ',' || approvers || ',' like '%,2095,%'
      

  4.   

    select * from T_017_ATTENDANCE_APPROVERs  where regexp_like(approvers,'^2095,*$'||'^*,2095$'||'^*,2095,*$') or approvers = '2095' ;怎么不行?[/
    不用这么麻烦,统一格式直接like就可以了,见4楼试一下满足条件不
      

  5.   


    WITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '20951' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP
        FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)[$,]');
      

  6.   


    WITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '20951' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP
        FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)[$,]');
    如果第三条数据是 2095  这个查不出来的
    WITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '20951' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP
        FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(',' ||APP|| ',', '\,2095,');
      

  7.   


    WITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '20951' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP
        FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)[$,]');
    如果第三条数据是 2095  这个查不出来的
    WITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '20951' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP
        FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(',' ||APP|| ',', '\,2095,');
    Sorry, please try againWITH T AS
     (SELECT '9884' ID, '9834,12095' APP
        FROM DUAL
      UNION ALL
      SELECT '9834' ID, '2095,2100' APP
        FROM DUAL
      UNION ALL
      SELECT '9890' ID, '2095' APP
        FROM DUAL
      UNION ALL
      SELECT '9866' ID, '2100,2095,2099' APP FROM DUAL)
    SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)($|,)');