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

Oracle SQL का उपयोग करके दी गई श्रेणी में जन्मदिन वाले कर्मचारियों का चयन करना

Oracle में दिनांक सीमाओं को खोजने के एक से अधिक तरीके हैं। आपके परिदृश्य के लिए मेरा सुझाव है कि आप सभी तिथियों के महीने और दिन के तत्वों को संख्याओं में बदल दें।

select
  p.id as person_id,
   ...
   ...
  where e.active = 1
  and to_number (to_char( e.dateOfBirth, 'MMDD')) 
      between to_number (to_char( FROMDATE, 'MMDD'))
              and to_number (to_char( TODATE, 'MMDD')) 
  order by extract(month from e.dateOfBirth) DESC,
          extract(day from e.dateOfBirth) DESC

यह e.dateOfBirth . पर किसी अनुक्रमणिका का उपयोग नहीं करेगा कॉलम। क्या यह मायने रखता है इस पर निर्भर करता है कि आप कितनी बार क्वेरी चलाना चाहते हैं।

@AdeelAnsari टिप्पणियाँ:

क्या सूचकांक? dateOfBirth पर एक सामान्य अनुक्रमणिका किसी भी काम का नहीं होगा, क्योंकि सूचकांक प्रविष्टियां वर्ष तत्व के साथ आगे बढ़ेंगी। तो यह आपको किसी भी . पर पैदा हुए लोगों के सभी रिकॉर्ड खोजने में मदद नहीं करेगा 23 दिसंबर।

एक फ़ंक्शन-आधारित अनुक्रमणिका - या 11g में, एक अनुक्रमणिका के साथ एक आभासी स्तंभ (मूल रूप से एक ही चीज़) - किसी दिनांक स्तंभ के भागों को अनुक्रमणित करने का एकमात्र तरीका है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल/एसक्यूएल:क्वेरी का चयन क्यों करता है * रिकॉर्ड से जहां राउनम> =5 और राउनम <=10 - शून्य पंक्तियां लौटाएं

  2. वैरिएबल कैसे घोषित करें और उसी Oracle SQL स्क्रिप्ट में इसका उपयोग कैसे करें?

  3. डेटान्यूक्लियस + जेपीए + ओरेकल। टेबल के साथ अजीब त्रुटि मौजूद नहीं है

  4. pdo_oci_handle_factory:त्रुटि के लिए पाठ पुनर्प्राप्त करने का प्रयास करते समय त्रुटि ORA-01804

  5. Grails में पूल मुद्दों के प्रारंभिक कनेक्शन बनाने में असमर्थ