sql >> Databáze >  >> RDS >> Oracle

Oracle SQL získává regulární výraz n-tého prvku

Pokud jsou vaše hodnoty s oddělovači vždy alfanumerické mezi čárkami, můžete zkusit:

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

Chcete-li získat sedmou hodnotu (včetně koncové čárky). Pokud je prázdný, dostanete pouze koncovou čárku (kterou můžete snadno odstranit).

Je zřejmé, že pokud chcete jinou hodnotu než sedmou, změňte hodnotu čtvrtého parametru na libovolný n-tý výskyt, např.

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

EDIT:Protože miluji REGEX, zde je řešení, které také odstraňuje koncovou čárku

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

doufám, že to pomůže



  1. smyčka mysql_fetch_array while. Jak to funguje?

  2. Jak RTRIM() funguje v MariaDB

  3. Jak odstranit text mezi 2 znaky pomocí dotazu v MYSQL

  4. Jaký je rozdíl mezi postgres a postgresql_psycopg2 jako databázovým strojem pro django?