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

Oracle:Rozdělit textové pole na nový řádek

Za předpokladu, že váš znak zalomení řádku je CHR(10), mělo by fungovat něco jako následující:

SELECT TRIM(REGEXP_REPLACE(addr, '(.*)' || CHR(10) || '.*' || CHR(10) || '.*', '\1')) AS STREET_ADDR,
       TRIM(REGEXP_REPLACE(addr, '.*' || CHR(10) || '(.*)' || CHR(10) || '.*', '\1')) AS CITY,
       TRIM(REGEXP_REPLACE(addr, '.*' || CHR(10) || '.*' || CHR(10) || '(.*)', '\1')) AS STATE
      FROM addr_table; 

Pokud je addr_table vyplněno pomocí následujícího příkazu:

INSERT INTO addr_table(addr)
VALUES('12345 MY STREET' || CHR(10) || 'NOWHERESVILLE' || CHR(10) || 'ASTATE');

výše uvedený SELECT se vrátí

STREET_ADDR     CITY            STATE
12345 MY STREET NOWHERESVILLE   ASTATE

Sdílejte a užívejte




  1. Ekvivalent PostgreSQL pro SQL Server GROUP BY WITH ROLLUP

  2. Oracle:získat maximální hodnotu skupiny?

  3. Jak opravíte chybu nesprávného souboru klíče MySQL, když nemůžete opravit tabulku?

  4. Správa připojení v PostgreSQL:Průvodce