Rom*_*gan 4 sql oracle sql-order-by
如何在SQL查询中设置条件逻辑以改变优先级?
例如,如果我有像"id","name","event_id"这样的列的表,并且我有不同的"event_id",如180,181,270,271,我需要以"event_id"的方式排序270将位于顶部,然后是具有"even_id"271的行,其余数据将按"id"列按降序排序.
zer*_*kms 13
使用CASE语句来做你想要的订单
ORDER BY
CASE
WHEN event_id = 270 THEN 0
WHEN event_id = 271 THEN 1
ELSE 2
END,
id DESC
Run Code Online (Sandbox Code Playgroud)
我更喜欢CASE:
ORDER BY CASE event_id WHEN 270 THEN 0
WHEN 271 THEN 1
END NULLS LAST,
id DESC;
Run Code Online (Sandbox Code Playgroud)
但有时我会使用DECODE,这有点不那么罗嗦:
ORDER BY DECODE(event_id, 270, 0,
271, 1,
2),
id DESC;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5652 次 |
| 最近记录: |