SQL Server,在两列上排序,首先是asc sort,第二个是asc或desc,基于第一个奇数偶数

els*_*nwx 4 sql sql-server

我想基于两列排序表,首先是asc sort,如果第一个字段是奇数,那么第二个是asc sort,如果第一个字段是des,那么desc sort.

例如,我在表格中有一些数据

在此输入图像描述

我想把它排除在外

在此输入图像描述

怎么写这个sql?

Fel*_*tan 6

你可以简单地ORDER BY -1 * SecondField在什么时候FirstField.

SQL小提琴

SELECT *
FROM tbl
ORDER BY
    FirstField,
    CASE 
        WHEN FirstField % 2 = 0 THEN -1 * SecondField
        ELSE SecondField
    END
Run Code Online (Sandbox Code Playgroud)