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

मैं BLOB को छोड़कर सभी क्षेत्रों में एक चयन DISTINCT कैसे कर सकता हूं?

SELECT DISTINCT MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS
FROM [...]

SELECT सूची से सभी कॉलम पर अलग लागू होता है। और हाँ, आप LOB का उपयोग GROUP BY, UNION, DISTINCT आदि में नहीं कर सकते क्योंकि Oracle विभिन्न LOB की तुलना करना नहीं जानता

यदि आप BLOB को भी पुनः प्राप्त करना चाहते हैं तो आप कुछ इस तरह से प्रयास कर सकते हैं:

SELECT MOVIES.TITLE, CERTIFICATIONS.ID, 
       PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE
FROM (     
  SELECT MOVIES.TITLE, CERTIFICATIONS.ID, 
         PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE,
         row_number() over (partition by MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS 
                            order by PROJECTION.DAY, TIME_SLOTS.SLOT) RW
  FROM [...]
) WHERE RW = 1;  

लेकिन आपको समझना चाहिए कि आप क्या ढूंढ रहे हैं। उदाहरण के लिए, उपरोक्त क्वेरी बीएलओबी कॉलम को छोड़कर सभी कॉलम समूहित करती है, उन्हें कुछ दो कॉलम द्वारा ऑर्डर करती है और समूह में प्रत्येक पंक्ति को एक पंक्ति संख्या निर्दिष्ट करती है। परिणामी क्वेरी प्रत्येक समूह में केवल पहली पंक्ति को पुनः प्राप्त करती है




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TO_DATE() Oracle में फ़ंक्शन

  2. PL/SQL संग्रह:Oracle डेटाबेस में नेस्टेड तालिका

  3. Oracle D2k फ़ॉर्म में PLSQL कोड प्रदर्शन को ट्यून या टेस्ट कैसे करें

  4. Perf Tools में RAC इंस्टेंस याद रखें

  5. Oracle में JDBC बैच डालने से उत्पन्न कुंजियाँ कैसे प्राप्त करें?