Megpróbálok egyes mintákat egyeztetni, és bizonyos karakterek és hosszúságok alapján kizárni néhányat.
Szeretném visszaadni mind a 3 karaktert és a 4 karakteres értéket:
- A 3 karakteres értékeknek bármilyen betűnek kell lennie a 3. helyen, azaz
11A
- A 4 karakteres értékeknek 2 betűnek kell lennie a végén, azaz
11AB
, de nem lehetnekEF
betűk, azaz ki kell zárni az olyan értékeket, mint a11EF
.
Asztal:
+------+ | CODE | +------+ | 11 | | 11A | | 11B | | 11EF | | 11AB | +------+
VÁRHATÓ KIMENET:
+-----------------+ | EXPECTED OUTPUT | +-----------------+ | 11A | | 11B | | 11AB | +-----------------+
Kipróbáltam ezt, de mindent visszaad, függetlenül a fent említett feltételektől:
select REGEXP_SUBSTR('11EF','^[0-9]{1,2}[A-Z]{1,2}?') from dual;
select REGEXP_SUBSTR('11','^[0-9]{1,2}[A-Z]{1,2}?') from dual;
select REGEXP_SUBSTR('11A','^[0-9]{1,2}[A-Z]{1,2}?') from dual;