with t as
 (select 'ou=O12121,ou=orgs,ou=gs,o=sgcc' dn, '12121' sgccorgid
    from dual
  union all
  select 'ou=O12122,ou=orgs,ou=gs,o=sgcc' dn, '12122' sgccorgid
    from dual
  union all
  select 'ou=O12123,ou=orgs,ou=gs,o=sgcc' dn, '12125' sgccorgid
    from dual
  union all
  select 'ou=O12124,ou=orgs,ou=gs,o=sgcc' dn, '12124' sgccorgid
    from dual
  union all
  select 'ou=O12125,ou=orgs,ou=gs,o=sgcc' dn, '12126' sgccorgid
    from dual)select * from t where t.dn not like 'ou=O' || t.sgccorgid || ',%';

解决方案 »

  1.   


    with t as
     (select 'ou=O12121,ou=orgs,ou=gs,o=sgcc' dn, '12121' sgccorgid
        from dual
      union all
      select 'ou=O12122,ou=org,ou=gs,o=sgcc' dn, '12122' sgccorgid
        from dual
      union all
      select 'ou=O12123,ou=orgs,ou=gs,o=sgcc' dn, '12125' sgccorgid
        from dual
      union all
      select 'ou=O12124,ou=orgs,ou=gs,o=sgcc' dn, '12124' sgccorgid
        from dual
      union all
      select 'ou=O12125,ou=orgs,ou=gs,o=sgcc' dn, '12126' sgccorgid
        from dual)
    SELECT * FROM t WHERE REGEXP_SUBSTR(t.dn,'[[:digit:]]+')=t.sgccorgid
      

  2.   


    with t as
     (select 'ou=O12121,ou=orgs,ou=gs,o=sgcc' dn, '12121' sgccorgid
        from dual
      union all
      select 'ou=O12122,ou=org,ou=gs,o=sgcc' dn, '12122' sgccorgid
        from dual
      union all
      select 'ou=O12123,ou=orgs,ou=gs,o=sgcc' dn, '12125' sgccorgid
        from dual
      union all
      select 'ou=O12124,ou=orgs,ou=gs,o=sgcc' dn, '12124' sgccorgid
        from dual
      union all
      select 'ou=O12125,ou=orgs,ou=gs,o=sgcc' dn, '12126' sgccorgid
        from dual)
        
        select * from t where substr(t.DN,5,5)=t.sgccorgid;