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

tambahkan koma (,) di Oracle

Oracle tidak memiliki fungsi seperti GROUP_CONCAT MySQL, yang merupakan fungsi yang Anda minta. Berbagai opsi untuk agregasi string tersebut disediakan di halaman ini - salah satunya adalah menggunakan fungsi khusus:

CREATE OR REPLACE FUNCTION get_subjectkey (IN_PK IN MYTABLE.PRIMARY_KEY%TYPE)
RETURN VARCHAR2
IS
  l_text  VARCHAR2(32767) := NULL;
BEGIN

  FOR cur_rec IN (SELECT subject_key 
                    FROM MYTABLE 
                   WHERE primary_key = IN_PK) LOOP
    l_text := l_text || ',' || cur_rec.ename;
  END LOOP;

  RETURN LTRIM(l_text, ',');
END;

Kemudian Anda akan menggunakannya seperti:

SELECT get_subjectkey(?) AS subject_key
  FROM DUAL

...mengganti "?" dengan nilai kunci utama.

Sebelumnya

Dengan asumsi Anda hanya ingin menambahkan koma di akhir nilai kolom, gunakan:

SELECT DISTINCT TO_CHAR(subject_key) || ','
  FROM MYTABLE

Pipa ganda -- "||" -- adalah cara Oracle [,PostgreSQL dan sekarang ANSI] untuk menggabungkan string dalam SQL. Saya menggunakan TO_CHAR untuk mengonversi tipe data secara eksplisit, tetapi Anda dapat menggunakan:

SELECT DISTINCT subject_key || ','
  FROM MYTABLE

...jika tidak perlu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Otentikasi dengan kunci publik dan cx_Oracle menggunakan Python

  2. cara membuat tabel dinamis di oracle dengan nama kolom dinamis dan tipe data dinamis tanpa tampilan atau tipe tabel lainnya

  3. Buat Spreadsheet Excel dari Database Oracle

  4. Implementasi CAS ke Oracle APEX

  5. Bagaimana cara menampilkan semua hak istimewa dari pengguna di Oracle?