आप इसे अपने क्रम में प्राप्त कर रहे हैं क्योंकि आप एक स्ट्रिंग द्वारा ऑर्डर कर रहे हैं (और यह काम नहीं करेगा क्योंकि आप किसी भी चीज़ से चयन नहीं कर रहे हैं)।
आप सप्ताह के दिन को संख्यात्मक रूप में बनाने के लिए प्रयुक्त प्रारूप मॉडल द्वारा ऑर्डर कर सकते हैं, 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)