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