यहाँ मुख्य शब्द है पहला . आप विश्लेषणात्मक फ़ंक्शन का उपयोग कर सकते हैं FIRST_VALUE
या समग्र निर्माण FIRST
.FIRST
के लिए या LAST
प्रदर्शन कभी भी खराब नहीं होता है और समकक्ष FIRST_VALUE
. से अक्सर बेहतर होता है या LAST_VALUE
निर्माण करें क्योंकि हमारे पास अनावश्यक विंडो सॉर्ट नहीं है और परिणामस्वरूप निष्पादन लागत कम है:
select table_A.id, table_A.name, firstFromB.city
from table_A
join (
select table_B.id2, max(table_B.city) keep (dense_rank first order by table_B.city) city
from table_b
group by table_B.id2
) firstFromB on firstFromB.id2 = table_A.id
where 1=1 /* some conditions here */
;
12c से शुरू किया गया ऑपरेटर LATERAL
, साथ ही CROSS/OUTER APPLY
जुड़ता है, JOIN
. के दाईं ओर एक सहसंबद्ध उपश्रेणी का उपयोग करना संभव बनाता है खंड:
select table_A.id, table_A.name, firstFromB.city
from table_A
cross apply (
select max(table_B.city) keep (dense_rank first order by table_B.city) city
from table_b
where table_B.id2 = table_A.id
) firstFromB
where 1=1 /* some conditions here */
;