SQL Server,按两列排序,第一个asc排序,第二个asc或desc根据第一个奇偶数

标签 sql sql-server

我想基于两列对表进行排序,首先是 asc 排序,然后是如果第一个字段是奇数然后 asc 排序,如果第一个字段是偶数然后 desc 排序。

例如我在表中有一些数据

enter image description here

我想把它排序成喜欢的

enter image description here

这个sql怎么写?

最佳答案

您可以简单地ORDER BY -1 * SecondFieldFirstField甚至。

SQL Fiddle

SELECT *
FROM tbl
ORDER BY
    FirstField,
    CASE 
        WHEN FirstField % 2 = 0 THEN -1 * SecondField
        ELSE SecondField
    END

关于SQL Server,按两列排序,第一个asc排序,第二个asc或desc根据第一个奇偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32132720/

相关文章:

sql - 使用查询 SQL Server 2008 选择 DATEADD 分钟

sql - SUM SQL Select 的某些列与两个表的 UNION

sql-server - 有没有一种方法可以在不使用 SQL Server 中的 ComputerName 的情况下连接 LOCALHOST?

sql - 如何使用 SQL 替换字符串末尾的子字符串?

sql-server - SQL Server Data Tools 在轻度 DAX 计算中崩溃

mysql - Laravel 加入 3 个表

mysql - 从 INFORMATION_SCHEMA COLUMNS 表构建列定义

sql-server - SQL Server Management Studio - 串行运行多个存储过程

sql - 如何使用group by编写sql查询

c# - asp.net - 如何在 Sql 中使用变量?