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

Gabungkan beberapa baris menjadi satu kolom menggunakan fungsi di Oracle dengan 3 tabel terkait

Anda perlu mengubah fungsi Anda agar menyerupai:

CREATE OR REPLACE FUNCTION f_test(IN_ID IN TABLE_C.a_id%TYPE) 
RETURN VARCHAR2 
IS

  l_text  VARCHAR2(32767) := NULL;

BEGIN

  FOR cur_rec IN (SELECT b.b_name 
                    FROM TABLE_B b
                    JOIN TABLE_C c ON c.b_id = b.b_id
                   WHERE c.a_id = IN_ID) LOOP
    l_text := l_text || ',' || cur_rec.b_id;
  END LOOP;

  RETURN LTRIM(l_text, ',');

END;

Kemudian, Anda dapat menggunakan:

SELECT a.a_name, 
       f_test(a.a_id)
  FROM TABLE_A a


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tulis file ke SFTP menggunakan Oracle PL/SQL

  2. Apa perbedaan antara tabel sementara vs tabel sementara global di Oracle?

  3. Impor file XML di Oracle XML DB Repository

  4. di mana klausa memilih kode istilah

  5. Mengapa saya menerima nilai yang tidak cukup saat menjalankan INSERT?