sql >> Databasteknik >  >> RDS >> Oracle

Hur man får en del av strängen som matchade med reguljärt uttryck i Oracle SQL

Ett sätt att göra det är med REGEXP_REPLACE. Du måste definiera hela strängen som ett regexmönster och sedan använda bara det element du vill ha som replace string . I det här exemplet är ColorID det tredje mönstret i hela strängen

SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
                         , '(.*)(color\=)([^;]+);?(.*)'
                         , '\3') "colorID"  
FROM DUAL;  

Det är möjligt att det kan finnas mindre klumpiga regex-lösningar, men den här fungerar definitivt. Här är en SQL-fiol.



  1. Entity Framework + MySQL - Varför är prestandan så hemsk?

  2. Oracle SQLPlus inställningsmiljövariabel baserad på variabel

  3. Uppskattat antal rader som ska läsas

  4. SQL Fylla med distinkta data och en sekvens