2

さて、これは私が思うにかなり簡単な質問であるはずですが、まだそれを理解することができていません。

スタッフというタイトルのテーブルがあります。スタッフDESCは以下のとおりです。

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)

これが私が使用している現在のクエリです:

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でも並べ替える必要があることです。ヒントをいただければ幸いです。前もって感謝します。

4

1 に答える 1

6

lName2番目の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; 
于 2012-09-21T21:25:47.197 に答える