Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL pobiera n-ty element regexp

Jeśli wartości rozdzielane są zawsze alfanumeryczne pomiędzy przecinkami, możesz spróbować:

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
  FROM dual;

Aby uzyskać siódmą wartość (łącznie z przecinkiem końcowym). Jeśli jest pusty, pojawia się po prostu końcowy przecinek (który można łatwo usunąć).

Oczywiście, jeśli chcesz mieć inną wartość niż siódmy, zmień wartość czwartego parametru na dowolne n-te wystąpienie, np.

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
  FROM dual;

EDYCJA:Ponieważ uwielbiam REGEX, jest to rozwiązanie, które usuwa również końcowy przecinek

SELECT REPLACE(
          REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>), 
          ','
       )
  FROM dual;

mam nadzieję, że to pomoże



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Równolegle SQL Server do Oracle DBMS_METADATA.GET_DDL?

  2. Zwiększenie numeru wiersza w grupie z powtarzającymi się grupami

  3. Polecenia kopii zapasowej RMAN

  4. Jak uzyskać wartości parametrów wiązania z obiektu Oracle JDBC PreparedStatement?

  5. Problemy z wywoływaniem procedury składowanej z C# z dużym CLOB