Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

एसक्यूएल:पहली मिली पंक्ति में शामिल होने को कैसे सीमित करें?

यहाँ मुख्य शब्द है पहला . आप विश्लेषणात्मक फ़ंक्शन का उपयोग कर सकते हैं 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 */
;


  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 sqlldr समानांतर में कई INFILE को प्रोसेस करता है

  2. Oracle plsql में Google अनुवाद URL का उपयोग कैसे करें?

  3. Oracle OR + IN से OR + EXISTS को ऑप्टिमाइज़ करता है जो बहुत धीमा है

  4. Oracle में संख्यात्मक कॉलम की सटीकता बदलना

  5. Oracle REGEXP_SUBSTR से SUBSTR + INSTR