Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL вложена подзаявка, препращаща към колона за баби и дядовци

Това е ограничение в Oracle SQL:не можете да препращате към родителски елемент на заявка от подзаявка на повече от 1 ниво.

Бих използвал функция в такъв случай:

CREATE OR REPLACE FUNCTION get_title(p_position_id NUMBER) RETURN VARCHAR2 IS
   l_result       LONG;
   l_position_num NUMBER := 0;
BEGIN
   FOR cc IN (SELECT position_title
                FROM position_table
               WHERE position_table.position_id = p_position_id
                 AND rownum <= 3) LOOP
      l_result       := cc.position_title || ',';
      l_position_num := l_position_num + 1;
   END LOOP;
   RETURN l_result || rpad(',', 3 - l_position_num, ',');
END;

Вашата заявка ще изглежда така:

select
  name,
  phone,
  address,
  get_title(p.position_id) title
from person_view p



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между хеш присъединяване и обединяване с обединяване (Oracle RDBMS)?

  2. EXTRACT (datetime) Функция в Oracle

  3. Разбивка на Oracle Cloud – Разходи за хостинг на база данни на OCI

  4. Защо моето песимистично заключване в JPA с Oracle не работи

  5. Добавяне на име на схема към обект в Spring данни?