Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Połącz wiele wierszy w jedną kolumnę za pomocą funkcji w Oracle z 3 powiązanymi tabelami

Musisz zmienić swoją funkcję, aby przypominała:

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;

Następnie możesz użyć:

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. Jak zainstalować Universal Oracle Installer na Ubuntu?

  2. Ładowanie DataFrame z Pandas do SQL dla wydajności ORACLE i BŁĘDU — ORA-00911:Nieprawidłowy znak

  3. Aktualizacja zapytania Oracle SQL Update trwa kilka dni

  4. znajdź nazwy kolumn i nazwy tabel, do których odwołuje się SQL

  5. Java łącząca się z wieloma bazami danych