sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Dela textfält på ny rad

Om du antar att din linjebrytarkaraktär är CHR(10), borde något i stil med följande fungera:

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; 

Om addr_table fylls i med följande sats:

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

ovanstående SELECT kommer tillbaka

STREET_ADDR     CITY            STATE
12345 MY STREET NOWHERESVILLE   ASTATE

Dela och njut




  1. Hur slår man ihop två databaser, med samma data, men med olika PK:er, utan duplicerade fält?

  2. SQL IN vs SQL FINNS

  3. Postgres-undantag:Inga resultat returnerades av frågan.

  4. java.sql.SQLException:Kunde inte commit med auto-commit på oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)