sql - 如何在 SQL 查询中设置条件逻辑以调整优先级?

标签 sql oracle sql-order-by

如何在 SQL 查询中设置条件逻辑以调整优先级?

例如,如果我有包含“id”、“name”、“event_id”之类的列的表,并且我有不同的“event_id”,例如 180、181、270、271,我需要以这样一种方式排序,即带有“event_id”的行270 将在顶部,然后带有“even_id” 271 的行和其余数据将按“id”列降序排列。

最佳答案

使用 CASE 语句来做你想要的订单

ORDER BY
CASE
    WHEN event_id = 270 THEN 0
    WHEN event_id = 271 THEN 1
    ELSE 2
END,
id DESC

关于sql - 如何在 SQL 查询中设置条件逻辑以调整优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2414206/

相关文章:

php - 使用 Where 子句插入

oracle - ORA-30036 : unable to extend segment by 8 in undo tablespace 'UNDOTBS'

mysql查询,左三张表用group by连接

oracle - ORA-06502 : PL/SQL: numeric or value error: character to number conversion error

oracle - 是否可以捕获ORACLE中的语法错误

mysql - SQL 查询,按子字符串排序

sql-server - 在 SQL Server 中显示排序的层次结构行?

javascript - 如何在sequelize中使用数据库时区获取当前日期/时间

mysql - 我找不到所描述的语法错误有人可以指出错误并提供解释我做错了什么吗?

sql - 为什么只能在 where 条件下以文本形式找到浮点值