Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nối nhiều hàng thành một cột bằng cách sử dụng một hàm trong Oracle với 3 bảng liên quan

Bạn cần thay đổi chức năng của mình để giống:

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;

Sau đó, bạn có thể sử dụng:

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. Danh sách các tham số NLS trong Cơ sở dữ liệu Oracle

  2. Chuyển đổi cột datetime thành utc time

  3. trình tự ngày oracle?

  4. Khả năng hiển thị khác biệt trong tham gia truy vấn con và vị trí

  5. Khai báo một biến tạm thời trong cơ sở dữ liệu Oracle