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

有什么建议?

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

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...)

最佳答案

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

08-08 04:46