好吧,我认为这应该是一个相当容易的问题,但还未能弄明白。
我有一张名为Staff的表。工作人员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排序。任何提示将非常感谢。提前谢谢。
答案 0 :(得分: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;