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

Cột tham chiếu truy vấn con lồng nhau trong SQL

Đây là một hạn chế trong Oracle SQL:bạn không thể tham chiếu phần tử truy vấn mẹ từ truy vấn con sâu hơn 1 cấp.

Tôi sẽ sử dụng một hàm trong trường hợp như vậy:

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;

Truy vấn của bạn sẽ giống như sau:

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. Cách tạo người dùng trong Oracle SQL Developer

  2. quy trình được lưu trữ để chọn tất cả các hàng từ bảng trong Oracle

  3. Cách phân vùng theo tháng và nhóm các tháng trong một quý

  4. Viết truy vấn SQL để tìm sinh viên đăng ký các đơn vị được cung cấp ở một địa điểm?

  5. Các tiêu đề cột liên tục xuất hiện trong suốt đầu ra của Oracle