具有复杂逻辑的 ORDER BY
如果我们想为每个组分配不同的数据,我们可以为 ORDER BY
添加 CASE
语法。在这个例子中,我们想要按工资从部门 1 和部门 2 的员工按工资订购员工。
ID |
FName 参数 | LName | 电话号码 | 经理 ID | DepartmentID | 薪水 | 聘用日期 |
---|---|---|---|---|---|---|---|
1 |
詹姆士 | 工匠 | 1234567890 | 空值 | 1 | 1000 | 2002 年 1 月 1 日 |
2 |
约翰 | 约翰逊 | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3 |
迈克尔 | 威廉姆斯 | 1357911131 | 1 | 2 | 600 | 12-05-2009 |
4 |
乔纳森 | 工匠 | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
五 | 山姆 | 撒克逊 | 1372141312 | 2 | 2 | 400 | 25-03-2015 |
The following query will provide the required results:
SELECT Id, FName, LName, Salary FROM Employees
ORDER BY Case When DepartmentId = 1 then LName else Salary end