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

सप्ताह के दिन सोमवार से रविवार तक छाँटें

आप इसे अपने क्रम में प्राप्त कर रहे हैं क्योंकि आप एक स्ट्रिंग द्वारा ऑर्डर कर रहे हैं (और यह काम नहीं करेगा क्योंकि आप किसी भी चीज़ से चयन नहीं कर रहे हैं)।

आप सप्ताह के दिन को संख्यात्मक रूप में बनाने के लिए प्रयुक्त प्रारूप मॉडल द्वारा ऑर्डर कर सकते हैं, D , लेकिन जैसा कि रविवार 1 है, मैं mod() . का उपयोग करने की अनुशंसा करता हूं यह काम करने के लिए।

यानी टेबल मानते हुए

create table a ( b date );

insert into a
 select sysdate - level
  from dual
connect by level <= 7;

यह काम करेगा:

select mod(to_char(b, 'D') + 5, 7) as dd, to_char(b, 'DAY')
  from a
 order by mod(to_char(b, 'D') + 5, 7)

यहाँ प्रदर्शित करने के लिए एक SQL Fiddle है।

आपके मामले में आपकी क्वेरी बन जाएगी:

select ename, to_char(hiredate,'fmDay') as "Day" 
  from my_table
 order by mod(to_char(hiredate, 'D') + 5, 7)


  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:कैसे पता करें कि कोई लेन-देन लंबित है या नहीं?

  2. Oracle में प्राथमिक कुंजी वाली डुप्लिकेट पंक्तियों को खोजने के 11 तरीके

  3. Oracle में पुनरावर्ती क्वेरी

  4. अनुक्रम और ट्रिगर के साथ oracle autoincrement सही ढंग से काम नहीं कर रहा है

  5. Oracle JDBC ojdbc6 जार एक मावेन निर्भरता के रूप में