Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL получава n-тия елемент regexp

Ако вашите разделени стойности винаги са буквено-цифрови между запетаите, можете да опитате:

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

За да получите седмата стойност (включително запетая в края). Ако е празно, получавате само запетая в края (която можете лесно да премахнете).

Очевидно е, че ако искате стойност, различна от седмата, тогава променете стойността на четвъртия параметър на всяко n-то срещане, което искате, напр.

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

РЕДАКТИРАНЕ:Тъй като обичам REGEX, ето решение, което също премахва запетаята в края

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

надявам се да помогне



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:ORA-01005:дадена е нулева парола; влизането е отказано

  2. Името ORA-00955 вече се използва от съществуващ обект

  3. Извличане на информация за колона (съставен ключ) в SQL

  4. DBMS_LOB.SUBSTR() хвърля твърде малък буфер на символен низ

  5. Транспониране на един ред в много редове Oracle