2012-09-21 5 views
2

알았어.이 질문은 상당히 쉬운 질문이지만 생각해 낼 수는 없습니다.정렬 내에서의 SQL 정렬

직원이있는 테이블이 있습니다. 직원의 DESC는 다음과 같습니다 :

SELECT bNo, lName||' '||fName, position, salary 
FROM Staff 
WHERE bNo 'b009' 
OR bNo = 'b005' 
ORDER BY 
    case position 
     when 'Manager' then 1 
     when 'Secretary' then 2 
     when 'Supervisor' then 3 
     when 'Assistant' then 4 
    else 99 
end; 

난 데 문제는 각 위치에 그룹 내에서, 나뿐만 아니라 LNAME으로 정렬 할 필요가있다 : 여기

SQL> DESC Staff 
Name          Null? Type 
----------------------------------------- -------- ---------- 
SNO          NOT NULL CHAR(5) 
FNAME            VARCHAR2(3 
LNAME            VARCHAR2(3 
POSITION           VARCHAR2(1 
SEX            CHAR(1) 
DOB            DATE 
SALARY            NUMBER(9) 
BNO            CHAR(4) 

내가 사용하고있는 현재의 쿼리입니다. 모든 팁은 크게 감사하겠습니다. 미리 감사드립니다.

답변

6

lName을 두 번째 ORDER BY 열에 그냥 추가하십시오.

ORDER BY CASE position 
      WHEN 'Manager' THEN 1 
      WHEN 'Secretary' THEN 2 
      WHEN 'Supervisor' THEN 3 
      WHEN 'Assistant' THEN 4 
      ELSE 99 
      END, 
      lName; 
+0

뛰어난. 그것은 내가 그것을 만들기보다 훨씬 쉬웠습니다. 도와 줘서 고마워. – jwebster