好吧,我认为这应该是一个相当简单的问题,但还没有弄明白。
我有一个名为 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 进行排序。任何提示将非常感谢。提前致谢。
最佳答案
只需添加 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;
关于mysql - SQL 排序中的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12538352/