Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL - Bagi satu kolom menjadi beberapa kolom

Tergantung pada konsistensi data - dengan asumsi satu spasi adalah pemisah antara apa yang ingin Anda tampilkan di kolom satu vs dua:

WITH TEST_DATA AS
  (SELECT 'LOREM IPSUM' COLUMN_A FROM DUAL)

SELECT SUBSTR(t.COLUMN_A, 1, INSTR(t.COLUMN_A, ' ')-1) AS COLUMN_A,
       SUBSTR(t.COLUMN_A, INSTR(t.COLUMN_A, ' ')+1) AS COLUMN_B
FROM test_data T;

Anda juga dapat menggunakan kueri di bawah ini dengan REGEX:

WITH TEST_DATA AS
   (SELECT 'LOREM IPSUM' COLUMN_A FROM DUAL)

SELECT REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A,
       REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_B
FROM test_data T;

Oracle 10g+ memiliki dukungan regex, memungkinkan lebih banyak fleksibilitas tergantung pada situasi yang perlu Anda selesaikan. Ia juga memiliki metode substring regex...

EDIT: PEMBAGIAN 3 KATA:

WITH TEST_DATA AS
  (SELECT 'LOREM IPSUM DIMSUM' COLUMN_A FROM DUAL)

 SELECT REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A,
     REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_B,
     REGEXP_SUBSTR(t.COLUMN_A, '[^ ]+', 2, 3) COLUMN_C
 FROM test_data T;

Referensi:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan hari pertama dan terakhir dalam seminggu di Oracle?

  2. tidak bisa keluar parameter dari prosedur tersimpan menggunakan php

  3. Mengakses elemen ke-2 di kolom varray

  4. Menggunakan sql/plsql, bagaimana Anda mengetahui set karakter mana yang digunakan teks?

  5. OracleException (0x80004005) Saat Menghubungkan ke Database Oracle