按照CASE条件控制升序/降序排序可以使用SQL的ORDER BY子句结合CASE语句来实现。以下是一个示例代码:
假设我们有一个名为"Employees"的表,包含"Name"和"Salary"两个列,我们想要按照"Salary"列进行排序,并根据"Name"列的值决定升序还是降序。
SELECT Name, Salary
FROM Employees
ORDER BY
CASE WHEN Salary >= 5000 THEN Name END ASC,
CASE WHEN Salary < 5000 THEN Name END DESC;
在这个示例中,我们使用了两个CASE语句来控制排序顺序。第一个CASE语句用于升序排序,它只有在"Salary"大于等于5000的情况下才会返回"Name"的值,否则返回NULL。第二个CASE语句用于降序排序,它只有在"Salary"小于5000的情况下才会返回"Name"的值,否则返回NULL。
ORDER BY子句首先按照第一个CASE语句的返回值进行升序排序,然后再按照第二个CASE语句的返回值进行降序排序。
请注意,CASE语句也可以与其他条件一起使用,根据实际需求进行适当的调整。
上一篇:按照参数排序的MySQL