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

Perbedaan nilai CSV menggunakan REGEXP_REPLACE di Oracle

Anda dapat menggunakan koleksi Oracles. CAST() dipasangkan dengan COLLECT() dapat menggabungkan nilai ke dalam koleksi yang ditentukan pengguna dan kemudian SET() akan menyingkirkan duplikat. Kemudian Anda dapat menggunakan LISTAGG() untuk mengonversi koleksi menjadi string.

Pengaturan Oracle :

CREATE TYPE intlist IS TABLE OF INT;
/

CREATE TYPE stringlist IS TABLE OF VARCHAR2(4000);
/

CREATE TABLE table_name ( ColA NUMBER(5,0), ColB VARCHAR2(20) );
INSERT INTO table_name
  SELECT 1, 'POW' FROM DUAL UNION ALL
  SELECT 2, 'POW' FROM DUAL UNION ALL
  SELECT 1, 'POWPRO' FROM DUAL UNION ALL
  SELECT 1, 'PRO' FROM DUAL UNION ALL
  SELECT 2, 'PRO' FROM DUAL UNION ALL
  SELECT 1, 'PROUTL' FROM DUAL UNION ALL
  SELECT 1, 'TNEUTL' FROM DUAL UNION ALL
  SELECT 1, 'UTL' FROM DUAL UNION ALL
  SELECT 1, 'UTLTNE' FROM DUAL;

Kueri :

SELECT ( SELECT LISTAGG( COLUMN_VALUE, ',' )
                  WITHIN GROUP ( ORDER BY COLUMN_VALUE )
         FROM   TABLE( ColA ) ) AS ColA,
       ( SELECT LISTAGG( COLUMN_VALUE, ',' )
                  WITHIN GROUP ( ORDER BY COLUMN_VALUE )
         FROM   TABLE( ColB ) ) AS ColB  
FROM   (
  SELECT SET( CAST( COLLECT( ColA ORDER BY ColA ) AS INTLIST ) ) ColA,
         SET( CAST( COLLECT( ColB ORDER BY ColB ) AS STRINGLIST ) ) ColB
  FROM   table_name
);

Keluaran :

ColA ColB
---- ---------------------------------------
1,2  POW,POWPRO,PRO,PROUTL,TNEUTL,UTL,UTLTNE


  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 saya bisa mengirim hasil kueri Oracle melalui email. Saya lebih suka melampirkan email sebagai file excel.

  2. Metode ExecuteBatch mengembalikan array nilai -2 di java

  3. Untuk menutup atau tidak menutup Koneksi Oracle?

  4. Menjalankan Total oleh Grup SQL (Oracle)

  5. Prosedur eksekusi klausa kasus