-1

私はSQLを学ぼうとしていますが、質問があります。日の論理的な順序で出力を並べ替えるにはどうすればよいですか? たとえば、「月曜日」から「日曜日」までの HIREDAY で人を注文したいとします。

select first_name,
TO_CHAR(hire_date,'Day') as "HIREDAY"
from employees
order by HIREDAY;

出力:

Daniel  Friday   
Ismael  Friday    
Gerald  Monday   
Renske  Monday   
Jason   Monday   
Vance   Saturday 
Jenni   Saturday 
Michael Saturday 
John    Sunday   
James   Sunday   
Matthew Sunday   
Payam   Thursday 
Irene   Thursday 
Michael Tuesday  
Kevin   Tuesday  
Anthony Wednesday
Karen   Wednesday
4

2 に答える 2

1

case次のステートメントを使用してこれを行うことができます。

order by (case when trim(Hire_Day) = 'Monday' then 1
               when trim(Hire_Day) = 'Tuesday' then 2
               when trim(Hire_Day) = 'Wednesday' then 3
               when trim(Hire_Day) = 'Thursday' then 4
               when trim(Hire_Day) = 'Friday' then 5
               when trim(Hire_Day) = 'Saturday' then 6
               when trim(Hire_Day) = 'Sunday' then 7
          end)

Oracle では、以下も使用できますDAYOFWEEK()

order by DAYOFWEEK(hire_date)

または to_char(Hire_Day, 'D') で注文

于 2013-04-27T16:42:45.217 に答える