一尘不染

通过特定字段值对SQL查询进行排序

sql

我有一个SQL查询(使用Firebird作为RDBMS),在该查询中,我需要按字段“ EDITION”对结果进行排序。但是,我需要按字段的内容排序。例如,“
NE”排在第一位,“ OE”排在第二位,“ OP”排在第三位,空白排在最后。不幸的是,我不知道如何实现这一目标。我曾经做过的只是ORDER BY
[FIELD] ASC / DESC而已。

有什么建议?

编辑:我真的应该澄清:我只是希望在这里学习更多。我现在有了它,只有多个select语句定义了要首先显示的语句。查询是相当大的,我确实希望学习一种更有效的方法:示例:

SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='NE'
UNION 
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OP'
UNION (etc...)

阅读 112

收藏
2021-05-16

共1个答案

一尘不染

Order By Case Edition
    When 'NE' Then 1
    When 'OE' Then 2
    When 'OP' Then 3
    Else 4 End
2021-05-16